金山西山居初赛第四场
来源:互联网 发布:手机恶意软件排行 编辑:程序博客网 时间:2024/04/30 12:34
http://acm.hdu.edu.cn/showproblem.php?pid=4554
hdu4554 叛逆的小明
Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)
Total Submission(s): 77 Accepted Submission(s): 57
Problem Description
叛逆期的小明什么都喜欢反着做,连看数字也是如此(负号除外),比如:
小明会把1234它看成4321;把-1234看成-4321;把230看成032 (032=32);把-230看成-032(-032=-32)。
现在,小明做了一些a+b和a-b的题目(a, b为整数且不含前导0),如果给你这些题目正确的答案,你能猜出小明会做得到什么答案吗?
小明会把1234它看成4321;把-1234看成-4321;把230看成032 (032=32);把-230看成-032(-032=-32)。
现在,小明做了一些a+b和a-b的题目(a, b为整数且不含前导0),如果给你这些题目正确的答案,你能猜出小明会做得到什么答案吗?
Input
输入第一行为一个正整数T(T<=10000),表示小明共做了T道题。
接下来T行,每行是两个整数x,y(-1000000<=x, y<=1000000), x表示a+b的正确答案,y表示a-b的正确答案。
输入保证合法,且不需考虑a或b是小数的情况。
接下来T行,每行是两个整数x,y(-1000000<=x, y<=1000000), x表示a+b的正确答案,y表示a-b的正确答案。
输入保证合法,且不需考虑a或b是小数的情况。
Output
输出共T行,每行输出两个整数s t,之间用一个空格分开,其中s表示小明将得到的a+b答案,t表示小明将得到的a-b答案。
Sample Input
320 67 7-100 -140
Sample Output
38 247 7-19 -23
#include<cstdio>int C(int x){ int y=0,t,p; if(x>0)p=1; else p=-1,x=-x; while(x){ t=x%10,x/=10; y=y*10+t; } return p*y;}int main(){ int x,y,a,b,T; scanf("%d",&T); while(T--){ scanf("%d%d",&x,&y); a=(x+y)/2,b=(x-y)/2; printf("%d %d\n",C(a)+C(b),C(a)-C(b)); } return 0;}
http://acm.hdu.edu.cn/showproblem.php?pid=4555
hdu4554 平面上的整点
Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)
Total Submission(s): 11 Accepted Submission(s): 1
Problem Description
众所周知,在三维空间内,不共线的三个点可以确定一个平面,现在给出三个点的空间坐标[x1,y1,z1],[x2,y2,z2],[x3,y3,z3],请计算在这3个点确定的平面上坐标分量x, y, z分别在[lx, rx],[ly, ry],[lz,rz]内的整数点有多少个。
Input
多组测试数据,每组数据包括两行。
第一行是9个整数x1, y1, z1, x2, y2, z2, x3, y3, z3表示三个点的坐标。
第二行有6个整数lx, rx, ly, ry, lz, rz 表示x, y, z的范围。
所有输入数据范围为[-10000, 10000],且
lx<=rx
ly<=ry
lz<=rz
第一行是9个整数x1, y1, z1, x2, y2, z2, x3, y3, z3表示三个点的坐标。
第二行有6个整数lx, rx, ly, ry, lz, rz 表示x, y, z的范围。
所有输入数据范围为[-10000, 10000],且
lx<=rx
ly<=ry
lz<=rz
Output
对每组测试数据输出一个整数,占一行,在指定定坐标范围内指定平面上有多少个整数点,若输入的三个点不能确定一个平面,直接输出"-1"。
Sample Input
0 0 0 0 1 0 0 0 1-2 2 -2 2 -2 21 1 1 2 2 2 1 1 1-1 1 -1 1 -1 1
Sample Output
25-1Hint第二组Sample表示给定的3个点有重合点~
不会,待。。。
http://acm.hdu.edu.cn/showproblem.php?pid=4556
hdu4556 Stern-Brocot Tree
Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)
Total Submission(s): 153 Accepted Submission(s): 90
Problem Description
上图是一棵Stern-Brocot树,其生成规则如下:
从第1行到第n行,每行相邻两数a/b和c/d,产生中间数(a+c)/(b+d),置于下一行中。将一行的分数(包括0/1,1/0),进行约分简化,则每一行(包括0/1,1/0,1/1),不会出现两个相同的分数。若分子或者分母大于n,则去掉该分数,将剩下的分数,从小到大排序,得到数列F。
现在请您编程计算第n行的数列F的个数。
Input
输入包含多组测试用例,每组输入数据是一个正整数n(n<=1000000)。
Output
对于每组的测试数据n,请输出第n行的数列F的个数。
Sample Input
1246
Sample Output
351325
分析:对于第n行,就是求分子、分母不超过n的真分数有多少个,对于一个分母x,分子小于x的真分数就是x的欧拉函数,故递推打表
#include<cstdio>const int N=1000001;int e[N];bool f[N];__int64 a[N],res=0; void euler(){ int i,j; for(i=1;i<N;i++)e[i]=i; for(i=2;i<N;i++)if(e[i]==i){ for(j=i;j<N;j+=i)e[j]=e[j]/i*(i-1); }}int main(){ int i; euler(); for(i=1;i<N;i++)res+=e[i],a[i]=res*2+1; while(~scanf("%d",&i))printf("%I64d\n",a[i]); return 0;}
- 金山西山居初赛第四场
- 金山西山居初赛第一场
- 金山西山居初赛第二场
- 金山西山居初赛第三场
- 西山居初赛第四场1001
- 2013金山西山居初赛第一场(hdu4545-hdu4547)
- 2013金山西山居挑战赛 初赛第3场 1001 生日猜猜猜
- 西山居初赛第三场1001
- 西山居初赛第一场1001
- 金山西山居2013程序挑战赛初赛 第一题
- 金山西山居2013程序挑战赛初赛 第三题
- 金山西山居初赛(2)第一题美素数--hdu4548
- ACM之金山西山居创意游戏程序挑战赛-初赛
- 西山居 初赛
- 2013金山西山居创意游戏程序挑战赛——初赛(1) A 魔法串
- 2013金山西山居创意游戏程序挑战赛——初赛(1) C CD操作
- 2013金山西山居创意游戏程序挑战赛——初赛(1)题解
- 2013金山西山居创意游戏程序挑战赛——初赛(1)
- 【编程之美】求二进制数中1的个数
- 《大数据》笔记 TF.IDF
- 手机客户端功能概要
- 编程中一些比较容易出错的地方
- hdu 4556 Stern-Brocot
- 金山西山居初赛第四场
- 为什么一个java源文件中只能有一个public类
- 深入了解php底层机制
- 网络编程概述
- STL实用入门教程(1)----学习
- 钩子函数---回调函数
- 比较两个集合
- redflag Dc5.0,Asianux2安装时无法创建文件系统,缺少scsi驱动解决办法
- Android实现网络多线程断点续传下载