CODEFORCES problem 105A.Transmigration
题目本身上手并不难,字符串处理+简单的排序。要注意的地方是浮点数的处理。
依据计算机中浮点数的表示原理,在实际编程的过程中即使用一个确定的整数(假设是1)给一个浮点变量赋值 在查看变量时会发现实际存储的值是0.99999…….可以注意到在使用原来的EPX*k时也有可能出现这样的情况,本来是准确值应该是100,浮点运算却会得到 99.999……
由于k只有两位小数,因此一个整数乘上k,最多还是只有两位
我们令
新的经验new_epx=epx*k+0.001
当然可以用任何比0.01小的数,都能在不会影响正确结果的前提下修正错误结果。
#include<stdio.h>
#include<string.h>
#include<math.h>
char f[][];
int c[];
int main()
{
int n,m;
double k;
char s[];
int x,t=,i,j,flag;
scanf("%d %d %lf",&n,&m,&k);
for(i=;i<=n;i++)
{
scanf("%s %d",s,&x);
if(x*k+0.001>=)
{
t++;
strcpy(f[t],s);c[t]=floor(x*k+0.001);
}
}
for(i=;i<=m;i++)
{
scanf("%s",s);
for(j=,flag=;j<=t;j++)
if(strcmp(s,f[j])==){flag=;break;}
if(!flag)
{
t++;
strcpy(f[t],s);
}
}
char ss[];
int xx;
for(i=;i<=t;i++)
for(j=i+;j<=t;j++)
{
if(strcmp(f[i],f[j])>)
{
strcpy(ss,f[i]);
strcpy(f[i],f[j]);
strcpy(f[j],ss);
xx=c[i];c[i]=c[j];c[j]=xx;
}
}
printf("%d\n",t);
for(i=;i<=t;i++)
printf("%s %d\n",f[i],c[i]);
return ;
}
CODEFORCES problem 105A.Transmigration的更多相关文章
- Codeforces Problem 708A Letters Cyclic Shift
		
题目链接: http://codeforces.com/problemset/problem/708/A 题目大意: 从字符串s中挑选出一个子串(非空),将该子串中的每个字母均替换成前一个字母,如' ...
 - Codeforces Problem 778B Bitwise Formula
		
题目链接:http://codeforces.com/contest/779/problem/E 题意:有n个变量都可以用m位二进制数表示,这n个数的value将以两种格式中的一种给出 1.变量名, ...
 - codeforces problem 140E New Year Garland
		
排列组合题 题意 用m种颜色的彩球装点n层的圣诞树.圣诞树的第i层恰由l[i]个彩球串成一行,且同一层内的相邻彩球颜色不同,同时相邻两层所使用彩球的颜色集合不同.求有多少种装点方案,答案对p取模. 只 ...
 - Codeforces Problem 598E - Chocolate Bar
		
Chocolate Bar 题意: 有一个n*m(1<= n,m<=30)的矩形巧克力,每次能横向或者是纵向切,且每次切的花费为所切边长的平方,问你最后得到k个单位巧克力( k <= ...
 - Codeforces Problem - 38E - Let's Go Rolling!(DP)
		
E. Let's Go Rolling! time limit per test 2 seconds memory limit per test 256 megabytes input standar ...
 - Codeforces 903G Yet Another Maxflow Problem - 线段树
		
题目传送门 传送门I 传送门II 传送门III 题目大意 给定一个网络.网络分为$A$,$B$两个部分,每边各有$n$个点.对于$A_{i} \ (1\leqslant i < n)$会向$A_ ...
 - Codeforces Round #439 (Div. 2) Problem E (Codeforces 869E) - 暴力 - 随机化 - 二维树状数组 - 差分
		
Adieu l'ami. Koyomi is helping Oshino, an acquaintance of his, to take care of an open space around ...
 - Codeforces Round #439 (Div. 2) Problem C (Codeforces 869C) - 组合数学
		
— This is not playing but duty as allies of justice, Nii-chan! — Not allies but justice itself, Onii ...
 - Codeforces Round #439 (Div. 2) Problem B (Codeforces 869B)
		
Even if the world is full of counterfeits, I still regard it as wonderful. Pile up herbs and incense ...
 
随机推荐
- linux命令规范
			
Linux文件后缀: 系统文件:*.conf *.rpm 系统与脚本:*.c *.php 存档文件和压缩文件:*.tar *.gz ……… Linux文件命名规则: 1.大小写敏感 2.除 ...
 - ES6特性的两点分析
			
块级作用域声明let.constES6中const 和let的功能,转换为ES5之后,我们会发现实质就是在块级作用改变一下变量名,使之与外层不同.ES6转换前: let a1 = 1; let a2 ...
 - window_c++_socket编程_winsock2.h
			
1.初始化动态链接库 WSAStartup: The WSAStartup function initiates use of the Winsock DLL by a process. WSASta ...
 - C# 實現文件壓縮-- 背景:服務器Log.txt 過多,佔用過多硬盤空間,壓縮備份后節省空間資源
			
1.壓縮實現代碼如下: 調用ICSharpCode.SharpZipLib.dll(free software,可以搜到源碼). 轉移指定目錄文件夾轉移到目標文件夾 壓縮目標文件夾 刪除目標文件夾 u ...
 - 04CSS文本字体及排版
			
CSS文本字体 字体——font-family font-family:字体1,字体2,字体3,……:应用font-family属性可以一次定义多个字体,而在浏览器读取字体时, 会按照定义的先后顺序来 ...
 - qemu启动vm后,如何host上使用ssh连接?
			
qemu启动vm后,如何从host ssh连接vm? qemu启动参数 启动命令: ${cmd_qemu_system} --enable-kvm \ -machine type=q35,accel= ...
 - eclipse包分层
			
方法很简单,如下图所示: 1.点击项目栏窗口的右上角的倒三角 2.选择Pachage Presentation(包呈现) 3.选择Hierarchical(分层)
 - Java 调用存储过程 返回结果集
			
这里使用Oracle数据库的thin连接. 下面是存储过程SQL 1 createorreplaceprocedure proc3(stid in student.stuid%type, stname ...
 - vue开发调试工具vue-devtools安装
			
vue开发调试工具别人总结的非常好,所以直接把链接拿过来了,就当做个笔记了,也希望能帮到有需要的人,感谢“沉着前进”,来源(https://www.cnblogs.com/fighxp/p/78150 ...
 - c++复合类型
			
1.数组 数组存储同类型的值: 数组使用下标或索引对元素进行标号,从0开始编号: 只能在定义数组时才能使用初始化,此后就不可以了,也不能将一个数组赋给另一个数组: 初始化数组时,提供的值可以少于数组元 ...