H-Updating a Dictionary (模拟)
Input
Output
Sample Input
3
{a:3,b:4,c:10,f:6}
{a:3,c:5,d:10,ee:4}
{x:1,xyz:123456789123456789123456789}
{xyz:123456789123456789123456789,x:1}
{first:1,second:2,third:3}
{third:3,second:2}
Sample Output
+d,ee
-b,f
*c
No changes
-first
直接模拟即可,这里用到了map,queue,string,stringstream,总之全用的标准库(咳咳咳),打算在重新写一份代码(代码待补),不借助map和queue,还有一件事,这道题提交了好多次都是WA。。。然后就把题读了好几遍,没发现什么特殊的情况存在,然后注释掉了一句代码就过了,std::ios::sync_with_stdio(false),就这句,解除cin与stdin的同步,据说会加快cin的速度,我怕会超时就把这段代码加上了(最后80ms),结果问题就出在这了,还有就是换行cout不用<<endl貌似也能加快速度。。。
代码:
#include<iostream>
#include<sstream>
#include<string>
#include<queue>
#include<map>
using namespace std; map<string,string> mp1,mp2;
typedef queue<string> Queue;
Queue New,Change,None; void Replace(string &str){
int len = str.size();
for(int i=;i<len;i++)
if(str[i] == ':'|| str[i]=='{' || str[i]=='}' || str[i] == ',') str[i] = ' ';
} void String_work(string &pre,string now){
Replace(pre); Replace(now);
stringstream ss(pre),mm(now);
string tmp,str;
while(ss >> str){
ss >> tmp;
mp1[str] = tmp;
}
while(mm >> str){
mm >> tmp;
mp2[str] = tmp;
}
} void Add_to_queue(){
map<string,string> ::iterator it;
for(it=mp2.begin();it!=mp2.end();it++){
if(mp1.find((*it).first)==mp1.end())
New.push((*it).first);
else if(mp1[(*it).first]!=(*it).second) {
Change.push((*it).first);
mp1.erase((*it).first);
}
else mp1.erase((*it).first); }
for(it=mp1.begin();it!=mp1.end();it++){
None.push((*it).first);
}
} void print_ans(Queue &Q,char c){
cout<< c;
while(!Q.empty()){
cout << Q.front(); Q.pop();
if(Q.empty()) cout << "\n" ; else cout <<",";
}
} void Solve_question(){
bool flag = true;
if(!New.empty()) {flag = false; print_ans(New,'+');}
if(!None.empty()) {flag = false; print_ans(None,'-');}
if(!Change.empty()) {flag = false; print_ans(Change,'*');}
if(flag) cout <<"No changes\n";
cout <<"\n";
} void Init_map(){
mp1.clear(); mp2.clear();
} int main(){
//std::ios::sync_with_stdio(false);!!!不能用!!!切记!!!
int T;
string pre,now;
cin >> T;
while(T--){
Init_map();
cin >> pre >> now;
String_work(pre,now);
Add_to_queue();
Solve_question();
}
}
H-Updating a Dictionary (模拟)的更多相关文章
- [ACM_模拟] UVA 12504 Updating a Dictionary [字符串处理 字典增加、减少、改变问题]
Updating a Dictionary In this problem, a dictionary is collection of key-value pairs, where keys ...
- Problem C Updating a Dictionary
Problem C Updating a Dictionary In this problem, a dictionary is collection of key-value pairs, ...
- csuoj 1113: Updating a Dictionary
http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1113 1113: Updating a Dictionary Time Limit: 1 Sec ...
- 湖南生第八届大学生程序设计大赛原题 C-Updating a Dictionary(UVA12504 - Updating a Dictionary)
UVA12504 - Updating a Dictionary 给出两个字符串,以相同的格式表示原字典和更新后的字典.要求找出新字典和旧字典的不同,以规定的格式输出. 算法操作: (1)处理旧字典, ...
- [刷题]算法竞赛入门经典(第2版) 5-11/UVa12504 - Updating a Dictionary
题意:对比新老字典的区别:内容多了.少了还是修改了. 代码:(Accepted,0.000s) //UVa12504 - Updating a Dictionary //#define _XieNao ...
- Updating a Dictionary UVA - 12504
In this problem, a dictionary is collection of key-value pairs, where keys are lower-case letters, a ...
- CSU 1113 Updating a Dictionary
传送门 Time Limit: 1000MS Memory Limit: 131072KB 64bit IO Format: %lld & %llu Description In th ...
- H.数7(模拟)
1212: H.数7 时间限制: 1 Sec 内存限制: 64 MB 提交: 8 解决: 5 标签提交统计讨论版 题目描述 数7是一个简单的饭桌游戏,有很多人围成一桌,先从任意一人开始数数,1.2 ...
- 【UVA】12504 Updating a Dictionary(STL)
题目 题目 分析 第一次用stringstream,真TMD的好用 代码 #include <bits/stdc++.h> using namespace std; int ...
随机推荐
- TLS漏洞:超过50万个电子邮件服务器容易受黑客攻击,太可怕了
2019年在流行的开源Exim电子邮件服务器软件中发现了一个关键的远程执行代码漏洞,至少有超过50万个电子邮件服务器容易受到远程黑客攻击.Exim是一种广泛使用的开源邮件传输代理(MTA)软件,为类似 ...
- ESP8266-利用网页控制ESP8266
说明:发出/gpio/1 就输出 "亮灯": /gpio/0 就输出 "灭灯" #include <ESP8266WiFi.h> con ...
- React Native 之react-native-sqlite-storage
npm 官网指导: https://www.npmjs.com/package/react-native-sqlite-storage 1. 执行: npm install react-native- ...
- RN组件的生命周期
来自:http://www.devio.org/tags/#React%20Native
- [USACO07OPEN]Dining 题解
前言 如果有人不会网络流,那么安利一下我网络最大流Dinic的博客 关于网络流,我多久没有碰这个算法了... 这是一道网络流好题. 题解 这道题目难点主要是构图. 这道题的构图一开始很容易想到建一个超 ...
- UE4 质心相关
Add force 始终给质心施加力,即使手动偏移了质心(Center of mass)也不例外. Add force at location local 相对于物体的原始质心位置增加一个偏移值后的位 ...
- [CSP-S模拟测试]:星际旅行(欧拉路)
题目传送门(内部题4) 输入格式 第一行两个整数$n,m$,表示行星和虫洞的数量.接下来$m$行,每行两个整数$u,v$,表示存在一个双向虫洞直接连接$u$和$v$.每一个虫洞最多会被描述一次. 输出 ...
- android 后台运行service实现和后台的持续交互
在项目中有这么一种需求 需要后台开启服务,时刻记录用户和软件的交互行为,一旦交互发生,就向服务器测发送一条消息 解决方案: 一.创建一个service服务类 在service中开启一个线程,servi ...
- 用 MuGo 搭建 Go Engine 在 KGS 对战
MuGo 是一个开源的 Go Engine,下棋能力大概在 10k - 2k 左右. 用 MuGo 搭建 Go Engine 并在 KGS 对战的步骤如下: 1. 安装 TensorFlow 因为 M ...
- 织梦自定义表单导出为excel功能
1.首先在后台修改/dede/templets/diy_main.htm <a href="../plus/diy.php?action=daochu&diyid={dede: ...