UVa 12504 Updating a Dictionary

2023-11-18

Problem

uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3948

题意

貌似是模拟?

Source Code

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

typedef struct
{
	char chg;
	char key[100],val[100];
}node;

node que[100];
int top,plus,neg,star;

int cmp(const void *a,const void *b)
{
	node *c=(node*)a,*d=(node*)b;
	return strcmp(c->key,d->key);
}

void read_old()
{
	char in=getchar();
	in=getchar();
	while(in!='}')
	{
		int i;
		for(i=0;in!=':'&&in!='}';i++)
		  que[top].key[i]=in=getchar();
		if(in=='}') return;
		que[top].key[i-1]='\0';
		for(que[top].val[i=0]='\0';in!=','&&in!='}';i++)
		  que[top].val[i]=in=getchar();
		que[top].val[i-1]='\0';
		que[top++].chg='-';
	}
	neg=top;
}

void read_new()
{
	char tkey[100],tval[100],in=getchar();
	in=getchar();
	while(in!='}')
	{
		int j;
		for(j=0;in!=':'&&in!='}';j++)
		  tkey[j]=in=getchar();
		if(in=='}') return;
		tkey[j-1]='\0';
		for(tval[j=0]='\0';in!=','&&in!='}';j++)
		  tval[j]=in=getchar();
		tval[j-1]='\0';
		for(j=0;j<top;j++)
		  if(!strcmp(tkey,que[j].key))
		    break;
		if(j<top)
		  if(!strcmp(tval,que[j].val))
		  {
			que[j].chg='n';
			neg--;
		  }
		  else
		  {
			que[j].chg='*';
			neg--;
			star++;
		  }
		else
		{
			strcpy(que[top].key,tkey);
			que[top++].chg='+';
			plus++;
		}
	}
}

void print(int num,char ch)
{
	int i;
	putchar(ch);
	for(i=0;i<top;i++)
	  if(que[i].chg==ch)
	  {
		printf("%s%c",que[i].key,",\n"[num==1]);
		if(--num==0) return;
	  }
}

int main()
{
	int iTom;
	scanf("%d",&iTom);
	while(iTom--)
	{
		int i;
		top=plus=neg=star=0;
		read_old();
		read_new();
		qsort(que,top,sizeof(node),cmp);
		if(!plus&&!neg&&!star)
		{
			puts("No changes\n");
			continue;
		}
		if(plus) print(plus,'+');
		if(neg) print(neg,'-');
		if(star) print(star,'*');
		putchar('\n');
	}
	return 0;
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

UVa 12504 Updating a Dictionary 的相关文章

  • hdu 4405 Aeroplane chess

    Problem acm hdu edu cn showproblem php pid 4405 vjudge net contest 151678 problem R Reference bbs csdn net topics 380193
  • HDU 4731 Minimum Palindrome

    hdu 4731 Minimum palindrome 题意 前n个字母形成一个m长的字符串 要求如下 1 最长回文串最小 2 字典序最小 思路 1 n 1 aaaa 2 n 2 打表找规律 1 a 2 ab 3 aab 4 aabb 5
  • 素数打表,复杂度(Onlogn)和O(n)(对与10^7来说线性快两倍) + 分解质因数

    代码 接口 primeInit 100000 打表的范围 素数存在primeList中 个数为primeCount typedef long long LL int const MAXN 10000100 bool isPrime MAXN
  • Uva 10474 Where is the Marble?(排序与检索)

    本题若掌握了sort 和lower bound 两个函数 就无难点 include
  • 贪心算法之田忌赛马(超详细)

    简述 手把手教会贪心算法之田忌赛马 超详细 题目 田忌赛马 田忌和齐王赛马 两人各出n匹马 赢一场比赛得200两银子 输了赔200银子 平局不赔不赚 已知两人每匹马的速度 问田忌最多能赢多少银子 多组测试数据 每组数据的第一行是一个整数n
  • 【刷题】华为笔试面试机考 [HJ29] - 字符串加解密

    题目地址 点击跳转 题目描述 1 对输入的字符串进行加解密 并输出 2 加密方法为 当内容是英文字母时则用该英文字母的后一个字母替换 同时字母变换大小写 如字母a时则替换为B 字母Z时则替换为a 当内容是数字时则把该数字加1 如0替换1 1
  • UVA-11059 最大乘积 题解答案代码 算法竞赛入门经典第二版

    GitHub jzplp aoapc UVA Answer 算法竞赛入门经典 例题和习题答案 刘汝佳 第二版 数据量不大 暴力即可 include
  • 【CSDN竞赛第17期】简要题解 92.5分

    目录 1 判断胜负 简单字符串 题目 题解 比赛时代码 2 买铅笔 简单算数 题目 题解 代码 3 拯救爱情 得分70 题目 题解 比赛时代码 4 拯救公主 中国剩余定理 或 模拟 题目 题解 模拟 中国剩余定理 比赛时代码 1 判断胜负
  • 杭电OJ_(2043)密码

    Problem Description 网上流传一句话 常在网上飘啊 哪能不挨刀啊 其实要想能安安心心地上网其实也不难 学点安全知识就可以 首先 我们就要设置一个安全的密码 那什么样的密码才叫安全的呢 一般来说一个比较安全的密码至少应该满足
  • 蓝桥杯 砝码称重 递归 解题报告

    5个砝码 用天平称重时 我们希望用尽可能少的砝码组合称出尽可能多的重量 如果只有5个砝码 重量分别是1 3 9 27 81 则它们可以组合称出1到121之间任意整数重量 砝码允许放在左右两个盘中 本题目要求编程实现 对用户给定的重量 给出砝
  • c编程:求出4×4矩阵中最大和最小元素值及其所在行下标和列下标,求出两条主对角线元素之和。

    求出4 4矩阵中最大和最小元素值及其所在行下标和列下标 求出两条主对角线元素之和 include
  • poj 2155 Matrix

    Problem poj org problem id 2155 vjudge net contest 146952 problem A Referencd www cnblogs com gj Acit p 3258880 html Mea
  • HDU1007(最近点对问题)

    题意不难理解 就是找到最近的两个点 计算其距离 除以2就是所求的圆的半径 思路很简单 运用分治的思想 先划分区间 分别找到左右区间中的最近点对 再合并区间 找到区间间的最近点对 注意如果用qsort 进行排序可能会超时 include
  • UVa 11464 Even Parity 题解

    这是一道白书17页的题目 题目大意 输入一个n n的01矩阵 1
  • ACM--田忌赛马--贪心--HDOJ 1052--Tian Ji -- The Horse Racing

    HDOJ题目地址 传送门 Tian Ji The Horse Racing Time Limit 2000 1000 MS Java Others Memory Limit 65536 32768 K Java Others Total S
  • ACM-子串(字符串处理)

    问题描述 有一些由英文字符组成的大小写敏感的字符串 请写一个程序 找到一个最长的字符串 x 使得 对于已经给出的字符串中的任意一个 y x 或者是 y 的子串 或者 x 中的字符反序之后得到的新字符串是 y 的子串 输入数据 输入 输入的第
  • hdu 1080 Human Gene Functions

    Problem acm hdu edu cn showproblem php pid 1080 Meaning 给出一个二维表 similarity 表示对应核苷酸配对时的相似度值 横杠 表示用空格代替一个核苷酸 给出两个DNA序列 a 和
  • UVa 12504 Updating a Dictionary

    Problem uva onlinejudge org index php option com onlinejudge Itemid 8 page show problem problem 3948 题意 貌似是模拟 Source Cod
  • kuangbin的模板

    直接链接 间接链接
  • 蓝桥杯 填字母游戏(博弈论)

    小明经常玩 LOL 游戏上瘾 一次他想挑战K大师 不料K大师说 我们先来玩个空格填字母的游戏 要是你不能赢我 就再别玩LOL了 K大师在纸上画了一行n个格子 要小明和他交替往其中填入字母 并且 1 轮到某人填的时候 只能在某个空格中填入L或

随机推荐