• 天涯浪子2
    了解作者
  • Java
    开发工具
  • 4KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 0
    下载次数
  • 2020-03-23 13:31
    上传日期
CCF CCSP 2019年9月比赛全五题答案
src.rar
  • t5_2
  • Main.java
    620B
  • t4_2
  • Main.rar
    961B
  • Main.java
    2.2KB
  • t3_5
  • Main.java
    4.4KB
  • t2
  • Main.java
    1.2KB
  • t1
  • Main.java
    550B
内容介绍
package t3_5; import java.util.Scanner; import java.util.HashMap; import java.util.Stack; public class Main { public static void main(String[] args) { Scanner sca=new Scanner(System.in); String s=sca.nextLine(); int n=Integer.valueOf(s); for(int i=0;i<n;i++) { s=sca.nextLine(); String[] equation=s.split("="); int val=1; HashMap<String,Integer> fin=new HashMap<>(); for(int equa=0;equa<2;equa++) { val=equa*-2+1; String[] expr=equation[equa].split("[+]"); Stack<Integer> stack = new Stack<>(); for(int j=0;j<expr.length;j++) { Node node=new Node();//为了方便对嵌套做处理 char[] formula=expr[j].toCharArray(); int coef=1;//首位置的系数 String coefs=new String(); if(Character.isDigit(formula[0])) { coefs=digit(formula,0); coef=Integer.valueOf(coefs); } for(int k=coefs.length();k<formula.length;k++) { if(formula[k]=='(') { Node child = new Node(); node.child = child; child.parent = node; node = child; if(Character.isDigit(formula[k+1])) { String stacks=digit(formula,k+1); stack.add(Integer.valueOf(stacks)); k+=stacks.length(); } else stack.add(1); } else if(formula[k]==')') { int dig=1; if(k+1<formula.length&&Character.isDigit(formula[k+1])) { String digs=digit(formula,k+1); dig=Integer.valueOf(digs); k+=digs.length(); } node = node.parent; moveMap(node.map, node.child.map, stack.pop()*dig); } else { int dig=1; if(k+1<formula.length) { if(Character.isDigit(formula[k+1])) { String digs=digit(formula,k+1); dig=Integer.valueOf(digs); if(node.map.get(String.valueOf(formula[k]))!=null) dig+=node.map.get(String.valueOf(formula[k])); node.map.put(String.valueOf(formula[k]), dig); k+=digs.length(); } else if(Character.isLowerCase(formula[k+1])) { String str=formula[k]+""+formula[k+1]; k++; if(k+1<formula.length&&Character.isDigit(formula[k+1])) { String digs=digit(formula,k+1); dig=Integer.valueOf(digs); k+=digs.length(); } if(node.map.get(str)!=null) dig+=node.map.get(str); node.map.put(str, dig); } else { if(node.map.get(String.valueOf(formula[k]))!=null) dig+=node.map.get(String.valueOf(formula[k])); node.map.put(String.valueOf(formula[k]), dig); } } else { if(node.map.get(String.valueOf(formula[k]))!=null) dig+=node.map.get(String.valueOf(formula[k])); node.map.put(String.valueOf(formula[k]), dig); } } } moveMap(fin, node.map, coef*val); } } boolean judge = true; for ( String str: fin.keySet() ) { if ( fin.get(str) != 0 ) { judge = false; break; } } if ( judge ) System.out.println("Y"); else System.out.println("N"); } sca.close(); } public static String digit(char[] formula,int i) { String dig=formula[i]+""; int length=formula.length; while(i+1<length) { if(Character.isDigit(formula[i+1])) { dig+=formula[i+1]; i++; } else break; } return dig; } public static void moveMap(HashMap<String,Integer> fin,HashMap<String,Integer> map,int dig) { for(String str:map.keySet()) { if ( !fin.containsKey(str)) fin.put(str, map.get(str)*dig); else fin.put(str, fin.get(str)+map.get(str)*dig); } } } class Node { HashMap<String, Integer> map = new HashMap<>(); Node child = null, parent = null; }
评论
    相关推荐
    • mota.rar
      使用cocos2d-x开发的魔塔小游戏的源码,工具使用的是vs2010
    • cocos2d-x魔塔源代码
      基于cocos2d-x手机游戏魔塔源代码
    • Main.rar
      CCF CCSP比赛,2019年12月第四题满分答案
    • GaussDB_100_1.0.1-DATABASE-REDHAT-64bit.tar.gz
      guassdb100在redhat上安装包,单机部署的包,安装步骤请看我的文中介绍,经过大量实验搭建总结出来的文档
    • SIM800C_MQTT.rar
      使用SIM800C模块,使用MQTT协议,连接中国移动onenet平台,能实现数据的订阅、发布、存储等
    • 卷积神经网络
      这是卷积神经网络的一个实际用例,已经调试好了,能够在matlab上成功运行,适合从事卷积神经网络(CNN)研究的人员学习使用。
    • android从bootloader到launcher启动流程整理
      讲述android 开机流程 从boot rom---bootloader---init--zygote---systemserver---ams 并附上自己整理的每个流程的流程图 ,清晰熟悉android 启动流程
    • 分数阶混沌系统:分数阶混沌系统的数值解。-matlab开发
      该工具箱包含可用于模拟一些著名的分数阶混沌系统的函数,例如: - 陈的系统, - Arneodo的系统, - Genesio-Tesi 的系统, - 洛伦兹系统, - 牛顿-莱普尼克系统, - 罗斯勒的系统, - Lotka-Volterra系统, - 达芬的系统, - 范德波尔的振荡器, -伏打的系统- 陆氏系统, - 刘的系统, - Chua的系统, - 金融系统, - 3 细胞 CNN。 这些函数以数值方式计算描述混沌系统的分数阶非线性微分方程的解。 每个函数返回总模拟时间的状态轨迹(吸引器)。 更多详情请看书: Ivo Petras,分数阶非线性系统:建模、分析和仿真,Springer,系列:非线性物理科学,2011,ISBN 978-3-642-18100-9。 http://www.springer.com/engineering/control/book/978-3-
    • matlabpam代码-dsp-library:用于光通信的MATLABDSP函数库
      matlab pam代码 DSP库 该项目包含几种不同的功能,可将DSP算法应用于光通信。 这些功能适用于相干和非相干(PAM,DMT)光通信。 大多数功能是相互独立的。 因此,该代码中的功能可以轻松使用,并与其他DSP功能结合使用。 用法 功能列表以及简短说明在文件中。 输入和输出参数的描述在每个函数的标题中。 讯号 通常,输入(和输出)信号在第一维度上具有时间(例如,列向量),而第二维度用于一次管理多个信号(例如,不同的极化,不同的参数等)。 之所以选择这种约定,是因为MATLAB通过将列保留在内存的连续部分中来存储矩阵,因此,这种约定比其他方法(行向量)要快。 参数 大多数功能使用参数结构作为输入参数。 函数中使用的参数的描述通常在标头中,而coherent-dsp函数的默认参数在文件中。 参考 执照 此代码在下发布。
    • 有关多目标跟踪的PHD滤波的一些资料
      一些关于多目标跟踪的新的文献,主要是有关概率假设密度(PHD)的