题意:对比新老字典的区别:内容多了、少了还是修改了。


代码:(Accepted,0.000s)

//UVa12504 - Updating a Dictionary
//#define _XieNaoban_
#include<iostream>
#include<sstream>
#include<string>
#include<vector>
#include<map>
using namespace std; int T;
int main()
{
#ifdef _XieNaoban_
freopen("in.txt", "r", stdin);
#endif
ios::sync_with_stdio(false);
cin >> T;
cin.ignore();
while (T--) {
map<string, string> dic;
for (int i(0);i < 2;++i) {
string line, key, value;
getline(cin, line);
for (auto &r : line)
if (r == ',' || r == ':' || r == '{' || r == '}') r = ' ';
istringstream in(line);
while (in >> key) {
in >> value;
if (i) {
auto d(dic.find(key));
if (d != dic.end()) {
if (d->second != value) d->second = "*";//changed
else d->second = '&';//not changed
}
else dic[key] = "+";//increased
}
else dic[key] = value;
}
}
vector<string> inc, rmv, chg;
for (const auto& r : dic)
switch (r.second[0])
{
case '+': inc.push_back(r.first);break;
case '*': chg.push_back(r.first);break;
case '&': break;
default: rmv.push_back(r.first);break;
}
if (inc.empty() && rmv.empty() && chg.empty())
cout << "No changes\n";
else {
if (!inc.empty()) {
cout << '+' << inc[0];
for (auto i(inc.begin() + 1);i != inc.end();++i)
cout << ',' << *i;
cout << '\n';
}
if (!rmv.empty()) {
cout << '-' << rmv[0];
for (auto i(rmv.begin() + 1);i != rmv.end();++i)
cout << ',' << *i;
cout << '\n';
}
if (!chg.empty()) {
cout << '*' << chg[0];
for (auto i(chg.begin() + 1);i != chg.end();++i)
cout << ',' << *i;
cout << '\n';
}
}
cout << '\n';
}
return 0;
}

分析:这题很水,轻松AC,没啥好说的。

[刷题]算法竞赛入门经典(第2版) 5-11/UVa12504 - Updating a Dictionary的更多相关文章

  1. [刷题]算法竞赛入门经典(第2版) 4-6/UVa508 - Morse Mismatches

    书上具体所有题目:http://pan.baidu.com/s/1hssH0KO 代码:(Accepted,10 ms) //UVa508 - Morse Mismatches #include< ...

  2. [刷题]算法竞赛入门经典(第2版) 5-15/UVa12333 - Revenge of Fibonacci

    题意:在前100000个Fibonacci(以下简称F)数字里,能否在这100000个F里找出以某些数字作为开头的F.要求找出下标最小的.没找到输出-1. 代码:(Accepted,0.250s) / ...

  3. [刷题]算法竞赛入门经典(第2版) 5-13/UVa822 - Queue and A

    题意:模拟客服MM,一共有N种话题,每个客服MM支持处理其中的i个(i < N),处理的话题还有优先级.为了简化流程方便出题,设每个话题都是每隔m分钟来咨询一次.现知道每个话题前来咨询的时间.间 ...

  4. [刷题]算法竞赛入门经典(第2版) 4-5/UVa1590 - IP Networks

    书上具体所有题目:http://pan.baidu.com/s/1hssH0KO 代码:(Accepted,0 ms) //UVa1590 - IP Networks #include<iost ...

  5. [刷题]算法竞赛入门经典(第2版) 6-7/UVa804 - Petri Net Simulation

    题意:模拟Petri网的执行.虽然没听说过Petri网,但是题目描述的很清晰. 代码:(Accepted,0.210s) //UVa804 - Petri Net Simulation //Accep ...

  6. [刷题]算法竞赛入门经典(第2版) 6-6/UVa12166 - Equilibrium Mobile

    题意:二叉树代表使得平衡天平,修改最少值使之平衡. 代码:(Accepted,0.030s) //UVa12166 - Equilibrium Mobile //Accepted 0.030s //# ...

  7. [刷题]算法竞赛入门经典(第2版) 6-1/UVa673 6-2/UVa712 6-3/UVa536

    这三题比较简单,只放代码了. 题目:6-1 UVa673 - Parentheses Balance //UVa673 - Parentheses Balance //Accepted 0.000s ...

  8. [刷题]算法竞赛入门经典(第2版) 5-16/UVa212 - Use of Hospital Facilities

    题意:模拟患者做手术. 其条件为:医院有Nop个手术室.准备手术室要Mop分钟,另有Nre个恢复用的床.准备每张床要Mre分钟,早上Ts点整医院开张,从手术室手术完毕转移到回复床要Mtr分钟.现在医院 ...

  9. [刷题]算法竞赛入门经典(第2版) 5-10/UVa1597 - Searching the Web

    题意:不难理解,照搬题意的解法. 代码:(Accepted,0.190s) //UVa1597 - Searching the Web //#define _XIENAOBAN_ #include&l ...

随机推荐

  1. python的try方法中的else和finally的区别

    #coding=utf-8__author__ = '14356_000'try: print '1'except: print '2'else: print '3'finally: print '4 ...

  2. windows_keyboard shortcuts快捷键

    单独按Windows:显示或隐藏"开始"功能表 Windows+BREAK:显示"系统属性" 对话框 Windows+D:显示桌面 Windows+M:最小化所 ...

  3. Where T:Class,new()的使用

    当我们使用泛型的时候,有时候就会提示我们T必须是引用类型而无法进行下去,其实我们学泛型的时候也应该了解到这个T的使用场合,他可以是值类型也可以是引用类型,但是我们某些场合就只能使用引用类型比如EF中的 ...

  4. XJOI练习2神奇的供水系统

    神奇的供水系统 在游遍神秘岛过程中,Z4发现每一个小岛上都有若干个奇怪的类似小水缸似的立方体,这另到Z4相当迷惑不解!这天晚上,忽然下起了一场大雨,在中心岛小树屋上类似那个圆形石槽中间的小孔中涌出了一 ...

  5. 老李推荐:第5章5节《MonkeyRunner源码剖析》Monkey原理分析-启动运行: 获取系统服务引用

    老李推荐:第5章5节<MonkeyRunner源码剖析>Monkey原理分析-启动运行: 获取系统服务引用   上一节我们描述了monkey的命令处理入口函数run是如何调用optionP ...

  6. java 解压 zip 包并删除

    需求是这样的,  在服务器上有 运营上传的zip 包,内容是用户的照片,我需要做的是 获取这些照片上传,并保存到 数据库. 这里面的 上传照片,保存数据库都不难,主要问题是解压zip包,和删除zip ...

  7. 子div块中设置margin-top时影响父div块位置的解决办法

    在css中设置样式时,通常会遇到用子div块margin中设置margin-top时,父div块中就会随着子div的margin-top,也会和子div执行相同的margin-top的位置样式 解决办 ...

  8. 20155304 实验一《Java开发环境的熟悉》实验报告

    20155304 实验一实验报告 实验一 Java开发环境的熟悉 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用IDEA编译.编译.运行.调试Java程序. 实验步骤 (一)命令行下 ...

  9. SqlParameter参数类型为int32时候的传值陷阱

    前2天在使用SqlParameter传递参数的时候遇到一个小坑,这里分享一下. SqlParameter para=new SqlParameter("@IsDeleted",0) ...

  10. 第五章 HQL实用技术

    第五章   HQL实用技术5.1  使用HQL查询语句(面向对象查询语句)    5.1.1 编写HQL语句        5.1.1.1 from子句                    例:fr ...