ACM试题

ACM试题
ACM试题

91000: 整数a+b

Time Limit: 1 Sec Memory Limit: 30 MB

Submit: 24043 Solved: 11168

SubmitStatusWeb Board Description

计算两个整数的和。

Input

输入两个整数,两个整数用空格隔开。

Output

输出为两个整数的和,单独占一行

Sample Input

1 1

Sample Output

2

HINT

Source

1004: 三位数的数位分离

Time Limit: 1 Sec Memory Limit: 30 MB

Submit: 12806 Solved: 8289

SubmitStatusWeb Board

Description

从键盘输入一个任意的三位正整数,分别求出其个位、十位和百位上的数字。

Input

输入任意的一个三位正整数。

Output

依次输出个位、十位、百位上的数字。以空格间隔,但最后一个数据的后面没有空格,直接换行。

Sample Input

367

Sample Output

7 6 3

HINT

Source

1005: 整数幂

Time Limit: 1 Sec Memory Limit: 30 MB

Submit: 18292 Solved: 7703

SubmitStatusWeb Board

Description

输入3个整数,输出它们的1次幂、2次幂和3次幂。

Input

输入3整数,用空格隔开

Output

输出3行,每行3个整数,分别是它们的1次幂、2次幂和3次幂,每个整数占9列,不足9列左对齐

Sample Input

1 5 100

Sample Output

1 1 1

5 25 125

100 10000 1000000

HINT

Source

1006: 求等差数列的和

Time Limit: 1 Sec Memory Limit: 30 MB

Submit: 11569 Solved: 7491

SubmitStatusWeb Board

Description

给出三个整数,分别表示等差数列的第一项、最后一项和公差,求该数列的和。

Input

输入三个整数,之间用空格隔开。第1个数作为首项,第2个数作为末项,第3个数作为公差.

Output

输出占一行,包含一个整数,为该等差数列的和。

Sample Input

2 11 3

Sample Output

26

HINT

Source

**

1007: 鸡兔同笼

Time Limit: 1 Sec Memory Limit: 30 MB

Submit: 10928 Solved: 7448

SubmitStatusWeb Board

Description

鸡和兔关在一个笼子里,鸡有2只脚,兔有4只脚,没有例外。已知现在可以看到笼子里m个头和n只脚,求鸡和兔子各有多少只?

Input

输入两个整数m和n,分别代表笼子里头的个数和脚的个数。(假设m和n都在合法的数据范围内)

Output

依次输出鸡和兔的只数。(数字为0的也要输出)

Sample Input

12 40

Sample Output

4 8

HINT

Source

1008: 美元和人民币

Time Limit: 1 Sec Memory Limit: 30 MB

Submit: 10568 Solved: 7397

SubmitStatusWeb Board

Description

美元越来越贬值了,手上留有太多的美元似乎不是件好事。赶紧算算你的那些美元还值多少人民币吧。假设美元与人民币的汇率是1美元兑换6.5573元人民币,编写程序输入美元的金额,输出能兑换的人民币金额。

输入美元的金额。

Output

输出能兑换的人民币的数值。输出保留2位小数。

Sample Input

100

Sample Output

655.73

HINT

建议用double

1009: 求平均分

Time Limit: 1 Sec Memory Limit: 30 MB

Submit: 10842 Solved: 7566

SubmitStatusWeb Board

Description

已知某位学生的数学、英语和计算机课程的成绩,求该生三门课程的平均分。Input

输入三个整数,数据之间由空格隔开。

输出占一行,包含一个实数,为三门课的平均分,保留两位小数。

Sample Input

87 73 93

Sample Output

84.33

HINT

Source

Time Limit: 1 Sec Memory Limit: 30 MB

Submit: 14391 Solved: 7466

SubmitStatusWeb Board

Description

输入圆的半径,求圆的周长和面积。

要求定义圆周率为如下宏常量

#define PI 3.14159

Input

输入半径r的值,为一实数。

Output

输出一行,包括周长和面积。数据之间用一个空格隔开,数据保留小数后面两位。

Sample Input

3

Sample Output

18.85 28.27

HINT

Source

1011: 圆柱体表面积

Time Limit: 1 Sec Memory Limit: 30 MB

Submit: 9682 Solved: 6979

SubmitStatusWeb Board

Description

输入圆柱体的底面半径r和高h,计算圆柱体的表面积并输出到屏幕上。要求定义圆周率为如下宏常量

#define PI 3.14159

Input

输入两个实数,为圆柱体的底面半径r和高h。

Output

输出一个实数,即圆柱体的表面积,保留2位小数。

Sample Input

42.1 71.6

Sample Output

30076.14

HINT

Source

1012: 求绝对值

Time Limit: 1 Sec Memory Limit: 30 MB

Submit: 10191 Solved: 7128

SubmitStatusWeb Board Description

求实数的绝对值。

Input

输入一个实数。

Output

输出它的绝对值,结果保留两位小数

Sample Input

-234.00

Sample Output

234.00

HINT

...

Source

1013: 求两点间距离

Time Limit: 1 Sec Memory Limit: 30 MB

Submit: 10812 Solved: 7192

SubmitStatusWeb Board

Description

给定A(x1, y1), B(x2, y2)两点坐标,计算它们间的距离。

Input

输入包含四个实数x1, y1, x2, y2,分别用空格隔开,含义如描述。其中0≤x1,x2,y1,y2≤100。

Output

输出占一行,包含一个实数d,表示A, B两点间的距离。结果保留两位小数。

Sample Input

1 1

2 2

Sample Output

1.41

HINT

Source

1014: 求三角形的面积

Time Limit: 1 Sec Memory Limit: 30 MB

Submit: 8812 Solved: 6762

SubmitStatusWeb Board Description

给出三角形的三条边,求三角形的面积。

Input

输入三角形的三条边长(实数),数据之间用空格隔开。Output

输出三角形的面积,结果保留2位小数。

Sample Input

2.5 4 5

Sample Output

4.95

HINT

用海伦公式或其他方法均可。

Source

1015: 二次方程的实根

Time Limit: 1 Sec Memory Limit: 30 MB

Submit: 15302 Solved: 6613

SubmitStatusWeb Board

Description

编程计算并输出一元二次方程ax^2+bx+c=0的两个实根,其中a、b、c的值由用户从键盘输入,假设a、b、c的值能保证方程有两个不相等的实根(即b^2-4ac>0)。

Input

输入三个实数,以空格隔开。

Output

按从大到小的顺序输出两个实根,每个数据占7列、小数点后保留两位小数,不足7列右对齐

Sample Input

2 6 1

Sample Output

-0.18 -2.82

注意%m.nf的作用

Source

**

Time Limit: 1 Sec Memory Limit: 30 MB

Submit: 9986 Solved: 6389

SubmitStatusWeb Board

Description

设银行1年期定期存款年利率为2.25%,存款本金为deposit元,试编程计算并输出n年后的本利之和。

Input

输入一个正整数和一个实数,分别代表存款年数和存款本金。

Output

输出一个双精度实数,小数点后保留6位有效数字。

Sample Input

2 100

Sample Output

104.550625

使用math.h中的数学函数

Source

1017: 表面积和体积

Time Limit: 1 Sec Memory Limit: 128 MB

Submit: 7173 Solved: 3994

SubmitStatusWeb Board

Description

读入5个整数a, b, c, d 和e,计算物体的表面积和体积。你可以想像该物体是一个长宽高为a, b, c 的长方体,每一面中央都是凹进去的,而凹进去的深度为d,沒凹进去的边框宽度e。

Input

5个整数a, b, c, d 和e,含义如上所述。

Output

输出两个整数,即物体的表面积和体积,用空格隔开。输出单独占一行。Sample Input

7

8

9

1

2

Sample Output

478 410

HINT

Source

***

1017: 表面积和体积

Time Limit: 1 Sec Memory Limit: 128 MB

Submit: 7173 Solved: 3994

SubmitStatusWeb Board

Description

读入5个整数a, b, c, d 和e,计算物体的表面积和体积。你可以想像该物体是一个长宽高为a, b, c 的长方体,每一面中央都是凹进去的,而凹进去的深度为d,沒凹进去的边框宽度e。

Input

5个整数a, b, c, d 和e,含义如上所述。

Output

输出两个整数,即物体的表面积和体积,用空格隔开。输出单独占一行。Sample Input

7

8

9

1

2

Sample Output

478 410

HINT

Source

***

1019: 公园门票

Time Limit: 1 Sec Memory Limit: 30 MB

Submit: 9824 Solved: 6652

SubmitStatusWeb Board

Description

某公园门票的票价是每人50元,一次购票满30张,每张可以少收2元。试编写自动计费系统程序。

Input

输入一个正整数,表示购票的数量。

Output

输出一个实数,表示用户实际需要支付的金额,保留两位小数。

Sample Input

30

Sample Output

1440.00

HINT

...

Source

*

1020: 两整数排序

Time Limit: 1 Sec Memory Limit: 30 MB

Submit: 9032 Solved: 6576

SubmitStatusWeb Board Description

从键盘输入两个整数x,y,按从小到大的顺序输出它们的值。

Input

输入两个整数x,y。

Output

按从小到大的顺序输出它们的值。数据之间以空格间隔。

Sample Input

20 16

Sample Output

16 20

HINT

...

Source

*

1021: 三个整数的最大值

Time Limit: 1 Sec Memory Limit: 30 MB

Submit: 11385 Solved: 8744

SubmitStatusWeb Board Description

从键盘输入三个整数x,y和z,求出其中最大的数。

Input

输入三个整数,用空格隔开。

Output

输出最大整数。

Sample Input

20 16 18

20

HINT

...

Source

*

1022: 三整数排序

Time Limit: 1 Sec Memory Limit: 30 MB

Submit: 11003 Solved: 6609

SubmitStatusWeb Board

Description

从键盘输入三个整数x,y和z,按从大到小的顺序输出它们的值。

Input

输入三个整数x,y和z。

Output

按从大到小的顺序输出它们的值。

ACM经典算法及配套练习题

POJ上的一些水题(可用来练手和增加自信) (poj3299,poj2159,poj2739,poj1083,poj2262,poj1503,poj3006,p oj2255,poj3094) 初期: 一.基本算法: (1)枚举. (poj1753,poj2965) (2)贪心(poj1328,poj2109,poj2586) (3)递归和分治法. (4)递推. (5)构造法.(poj3295) (6)模拟法.(poj1068,poj2632,poj1573,poj2993,poj2996) 二.图算法: (1)图的深度优先遍历和广度优先遍历. (2)最短路径算法(dijkstra,bellman-ford,floyd,heap+dijkstra) (poj1860,poj3259,poj1062,poj2253,poj1125,poj2240) (3)最小生成树算法(prim,kruskal) (poj1789,poj2485,poj1258,poj3026) (4)拓扑排序(poj1094) (5)二分图的最大匹配(匈牙利算法) (poj3041,poj3020) (6)最大流的增广路算法(KM算法). (poj1459,poj3436) 三.数据结构. (1)串(poj1035,poj3080,poj1936) (2)排序(快排、归并排(与逆序数有关)、堆排) (poj2388,poj2299) (3)简单并查集的应用. (4)哈希表和二分查找等高效查找法(数的Hash,串的Hash) (poj3349,poj3274,POJ2151,poj1840,poj2002,poj2503) (5)哈夫曼树(poj3253) (6)堆 (7)trie树(静态建树、动态建树) (poj2513) 四.简单搜索 (1)深度优先搜索(poj2488,poj3083,poj3009,poj1321,poj2251) (2)广度优先搜索(poj3278,poj1426,poj3126,poj3087.poj3414) (3)简单搜索技巧和剪枝(poj2531,poj1416,poj2676,1129) 五.动态规划 (1)背包问题. (poj1837,poj1276) (2)型如下表的简单DP(可参考lrj的书page149): 1.E[j]=opt{D+w(i,j)} (poj3267,poj1836,poj1260,poj2533) 2.E[i,j]=opt{D[i-1,j]+xi,D[i,j-1]+yj,D[i-1][j-1]+zij} (最长公共子序列) (poj3176,poj1080,poj1159) 3.C[i,j]=w[i,j]+opt{C[i,k-1]+C[k,j]}.(最优二分检索树问题) 六.数学 (1)组合数学:

ACM题

求体积 #include #include #define PI 3.1415927 int main() { double x; while(scanf("%lf",&x)!=EOF) { printf("%.3lf\n",(4.0*PI*x*x*x)/3.0); } return 0; } 求a+b II. #include #include #define N 1005 char A[N],B[N],sum[N]; int main() { int T,i,j,k,x,sign; while(scanf("%d",&T)!=EOF) { for(i=0;i

{ sum[x]=(A[j]-'0')+(B[k]-'0')+sign-10; sign=1; } } #include using namespace std; int main() { int a, b; while(cin >> a >> b) cout << a + b << endl; return 0; 求a+b #include using namespace std; int main() { int a,b,s; while(cin>>a>>b) { s=a+b; cout< #include int main() { char s[3],a,b,c,temp; while(scanf("%s",s)!=EOF) { a=s[0];b=s[1];c=s[2]; if(a>b) { temp=a; a=b;

ACM竞赛试题集锦

取石子游戏 Time Limit:1S Memory Limit:1000K Total Submit:505 Accepted:90 Description 有两堆石子,数量任意,可以不同。游戏开始由两个人轮流取石子。游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在两堆中同时取走相同数量的石子。最后把石子全部取完者为胜者。现在给出初始的两堆石子的数目,如果轮到你先取,假设双方都采取最好的策略,问最后你是胜者还是败者。 Input 输入包含若干行,表示若干种石子的初始情况,其中每一行包含两个非负整数a和b,表示两堆石子的数目,a和b都不大于1,000,000,000。 Output 输出对应也有若干行,每行包含一个数字1或0,如果最后你是胜者,则为1,反之,则为0。 Sample Input

2 1 8 4 4 7 Sample Output 1 跳蚤 Time Limit:1S Memory Limit:1000K Total Submit:198 Accepted:44 Description Z城市居住着很多只跳蚤。在Z城市周六生活频道有一个娱乐节目。一只跳蚤将被请上一个高空钢丝的正中央。钢丝很长,可以看作是无限长。节目主持人会给该跳蚤发一张卡片。卡片上写有N+1个自然数。其中最后一个是M,而前N个数都不超过M,卡片上允许

有相同的数字。跳蚤每次可以从卡片上任意选择一个自然数S,然后向左,或向右跳S个单位长度。而他最终的任务是跳到距离他左边一个单位长度的地方,并捡起位于那里的礼物。 比如当N=2,M=18时,持有卡片(10, 15, 18)的跳蚤,就可以完成任务:他可以先向左跳10个单位长度,然后再连向左跳3次,每次15个单位长度,最后再向右连跳3次,每次18个单位长度。而持有卡片(12, 15, 18)的跳蚤,则怎么也不可能跳到距他左边一个单位长度的地方。 当确定N和M后,显然一共有M^N张不同的卡片。现在的问题是,在这所有的卡片中,有多少张可以完成任务。 Input 两个整数N和M(N <= 15 , M <= 100000000)。 Output 可以完成任务的卡片数。 Sample Input

ACM题目整理

题目来源:福州大学acm网站 代码:fpcdq 一、入门 熟悉ACM竞赛规则以及程序提交注意事项 例题: Problem 1000 A+B Problem Time Limit: 1000 mSec Memory Limit : 32768 KB Problem Description Calculate a + b. Input The input will consist of a series of pairs of integers a and b,separated by a space, one pair of integers per line. Output For each pair of input integers a and b you should output the sum of a and b in one line,and with one line of output for each line in input. Sample Input 1 5 2 3 Sample Output 6 5

My answer: #include main() { long a,b; while((scanf("%ld%ld",&a,&b))!=EOF) { printf("%ld\n",a+b); } } 详情参考https://www.360docs.net/doc/9211094297.html,/faq.php 二、ACM分类 主流算法: 1.搜索//回溯 Problem 1019 猫捉老鼠 Time Limit: 1000 mSec Memory Limit : 32768 KB Problem Description 一只猫和一只老鼠在10*10的迷宫中。迷宫中的每个方格可以是空的,或者含有障碍。猫和老鼠可以进入任意一个空的方格中。当他们相遇时,猫和老鼠在同一个方格中。但是,无论猫或老鼠都不能进入有障碍的方格。我们可以用字符组成的二维数组表示迷宫,如下图所示。

安徽ACM省赛试题

2018年安徽省机器人大赛程序设计竞赛

目录A.数7 B.编译错误 C.做操的时候要排好队D.判重 E.最长上升字串 F.雄伟的城堡 G.然后打5 H.运货卡车 I.最大矩形框 J.数列分段 K.数数字

A.数7 时间限制: 3s 描述 求整数序列中位置L到位置R中一共有多少个7。对于每个数7的个数的定义为,十进制各个位置上一共有多少个7,以及能够被7整除的次数。 输入 第一行是一个整数T,代表测试数据的组数。每组数据中两个整数L,R。其中T≤50,L

B.编译错误 时间限制: 3s 描述 在程序员编写程序的时候,通常会引用其他文件,而引用的文件也会引用其它的头文件。但是出现循环引用的现象编译时便会报错。例如A引用了B,B引用了C,C引用了A,那么就产生了循环引用(Circular reference)。考虑另外一个情况,A引用了B和C,B引用D,C引用D,虽然D被引用了两次,但是没有出现循环引用。 输入 第一行是一个整数T,代表测试数据的组数。每组数据中第一行是一个整数n,代表有多少个引用关系。接下来n行每行有2个字符串a,b,用空格分隔,代表a引用了b。其中T≤50, n≤105,每个字符串长度不超过100。 输出 共T行。若不会产生编译错误则输出Passed,否则输出Failed。 样例输入 样例输出

C.做操的时候要排好队 时间限制: 3s 描述 同学们在做早操时,应该按照身高从低到高排好队。但是总是有人不好好排队,老师在审查时会对没有排好的队伍扣除一定的分数。扣的分数被定义为,找到三个人Ai,Aj,Ak,其中i

ACM必做50题——模拟

1、POJ 1029 False coin Slyar:又是假币判断问题,跟POJ1013类似,不过这个题用1013那个算法W A了...后来换了种枚举的算法才过...思路就是假币应该在每个不等式中都出现,最后只要看哪个硬币出现的次数和不等式出现的次数相同,如果这个硬币唯一,那它就是确认的假币。 #include #include using namespace std; const int MAX = 1001; int main() { int n, k, p, total = 0; char sign; /* 记录原始数据*/ int t[MAX] = {0}; /* 标记硬币真假*/ int r[MAX] = {0}; /* 记录硬币重量*/ int w[MAX] = {0}; cin >> n >> k; while (k--) { /* 读入原始数据*/ cin >> p; for (int i = 0; i < 2 * p; i++) { cin >> t[i]; } cin >> sign; /* 标记肯定为真的硬币*/ if (sign == '=') { for (int i = 0; i < 2 * p; i++) {

r[t[i]] = 1; } } /* 左轻右重*/ else if (sign == '<') { total++; for (int i = 0; i < p; i++) { w[t[i]]--; } for (int i = p; i < 2 * p; i++) { w[t[i]]++; } } /* 左重右轻*/ else if (sign == '>') { total++; for (int i = 0; i < p; i++) { w[t[i]]++; } for (int i = p; i < 2 * p; i++) { w[t[i]]--; } } } /* 假币在不等式中每次都应该出现*/ int count = 0, pos = 0; for (int i = 1; i <= n; i++) { if (r[i]) { continue; } /* 找出每次都出现的"假币" */ if (w[i] == total || w[i] == - total) { count++; pos = i;

Acm试题及答案

Acm试题及答案 1001 Sum Problem ............................................. 错误!未定义书签。1089 A+B for Input-Output Practice (I) ...................... 错误!未定义书签。1090 A+B for Input-Output Practice (II) ..................... 错误!未定义书签。1091 A+B for Input-Output Practice (III) .................... 错误!未定义书签。1092 A+B for Input-Output Practice (IV) ...................... 错误!未定义书签。1093 A+B for Input-Output Practice (V) ...................... 错误!未定义书签。1094 A+B for Input-Output Practice (VI) ..................... 错误!未定义书签。1095 A+B for Input-Output Practice (VII) ..................... 错误!未定义书签。1096 A+B for Input-Output Practice (VIII) ................... 错误!未定义书签。2000 ASCII码排序............................................ 错误!未定义书签。2001计算两点间的距离........................................ 错误!未定义书签。2002计算球体积.............................................. 错误!未定义书签。2003求绝对值................................................ 错误!未定义书签。2004成绩转换................................................ 错误!未定义书签。2005第几天.................................................. 错误!未定义书签。2006求奇数的乘积............................................ 错误!未定义书签。2007平方和与立方和.......................................... 错误!未定义书签。2008数值统计................................................ 错误!未定义书签。2009求数列的和.............................................. 错误!未定义书签。2010水仙花数................................................ 错误!未定义书签。2011多项式求和.............................................. 错误!未定义书签。2012素数判定................................................ 错误!未定义书签。2014青年歌手大奖赛_评委会打分............................... 错误!未定义书签。

杭电acm部分题目及答案答案

自己刷的题 这是我在杭电做题的记录,希望我的分享对你有帮助!!! 1001 Sum Problem***********************************************************1 1089 A+B for Input-Output Practice (I)********************************2 1090 A+B for Input-Output Practice (II)********************************5 1091A+B for Input-Output Practice (III)****************************************7 1092A+B for Input-Output Practice (IV)********************************8 1093 A+B for Input-Output Practice (V)********************************10 1094 A+B for Input-Output Practice (VI)***************************************12 1095A+B for Input-Output Practice (VII)*******************************13 1096 A+B for Input-Output Practice (VIII)******************************15 How to Type***************************************************************16 1001 Sum Problem Problem Description Hey, welcome to HDOJ(Hangzhou Dianzi University Online Judge). In this problem, your task is to calculate SUM(n) = 1 + 2 + 3 + ... + n. Input The input will consist of a series of integers n, one integer per line. Output For each case, output SUM(n) in one line, followed by a blank line. You may assume the result will be in the range of 32-bit signed integer.

整理出ACM所有题目及答案

1111111杭电: 1000 A + B Problem (4) 1001 Sum Problem (5) 1002 A + B Problem II (6) 1005 Number Sequence (8) 1008 Elevator (9) 1009 FatMouse' Trade (11) 1021 Fibonacci Again (13) 1089 A+B for Input-Output Practice (I) (14) 1090 A+B for Input-Output Practice (II) (15) 1091 A+B for Input-Output Practice (III) (16) 1092 A+B for Input-Output Practice (IV) (17) 1093 A+B for Input-Output Practice (V) (18) 1094 A+B for Input-Output Practice (VI) (20) 1095 A+B for Input-Output Practice (VII) (21) 1096 A+B for Input-Output Practice (VIII) (22) 1176 免费馅饼 (23) 1204 糖果大战 (25) 1213 How Many Tables (26) 2000 ASCII码排序 (32) 2001 计算两点间的距离 (34) 2002 计算球体积 (35) 2003 求绝对值 (36) 2004 成绩转换 (37) 2005 第几天? (38) 2006 求奇数的乘积 (40) 2007 平方和与立方和 (41) 2008 数值统计 (42) 2009 求数列的和 (43) 2010 水仙花数 (44) 2011 多项式求和 (46) 2012 素数判定 (47) 2014 青年歌手大奖赛_评委会打分 (49) 2015 偶数求和 (50) 2016 数据的交换输出 (52) 2017 字符串统计 (54) 2019 数列有序! (55) 2020 绝对值排序 (56) 2021 发工资咯:) (58) 2033 人见人爱A+B (59) 2037 今年暑假不AC (61) 2039 三角形 (63) 2040 亲和数 (64)

ACM必做50题——数学

1、POJ 2249 Binomial Showdown 组合数学。 高精度,也可把分子分母的数组进行两两约分 #include using namespace std; double c(int c,int k) { double a=1; int i,j=2; for(i=c;i>c-k;i--) a=a*i/(c-i+1); return a; } int main() { int n,k; while(scanf("%d%d",&n,&k)!=EOF && (n!=0 || k!=0)) { if(k>n/2 )k=n-k; printf("%.0lf\n",c(n,k)); } return 0; } 2、poj 1023 the fun number system (经典进位制) 题意:一种由2进制衍生出来的进制方法(我们暂且称为“类2进制”); 标明'n'的位置上原2进制该位的权重要乘上-1,才是现在进制方法该位的权重; 譬如说;pnp对于的能表示的数2来说就是110;即1*2^2+(-1)*1*2^1+1*2^0=2; 算法:这是数论中的进位制问题,我们可以仿照原来的求一个数二进制表示方法; 但首先,我们应该考虑几个问题; ①k位这种类2进制的表示范围; 显然,当给出的'p','n'序列中,我们将所有p的位置都置为1其余位是0,此时最大;当我们将所有n的位置置为1,其余为0,此时最小;不过当我们求最大限max和最小限min时会

有一个溢出问题;比如64位全是p的序列,那么max会溢出,值为-1;同理min在全是n 时也会溢出,为1;显然是max>=0,min<=1,溢出时产生异常,依次可以判断; ②是否是最大限和最小限之间的数都能表示呢? 都可以,而且能够表示的数是2^k个,这个原始2进制是一样的;因为每个位上要么是0,要么是1,而且每个位上的权重唯一的,不能通过其他位的01组合获得;最后,我们就可以仿照原始二进制来算在类2进制下的表示;不断求N的二进制最后一位和右移;如果取余是1,则该位上一定是1,如果该位对于字母为‘n’,则高位应该再加1;这里对2取余可能会出错,因为对于负数,补码的表示,最后一位一定是和原码一样的每次的右移后(有时需先加1)补码表示正好符合要求(可找实例验证); #include using namespace std; __int64 N,M; char s[100],res[100]={'\0'}; int main() { int T;scanf("%d",&T); int i,j; __int64 _max,_min; char ch; while(T--) { scanf("%I64d",&N); scanf("%s",s); _max=0;_min=0; for(i=0;i_max&&_max>=0)) puts("Impossible"); //注意防止64位数的溢出; else { memset(res,'\0',sizeof(res)); for(i=N-1;i>=0;i--) { int flag=0; if(M&1) //这里不能是平常的%2; { res[i]='1';

ACM数论方面十道基础题目详解

1、公约数和公倍数 https://www.360docs.net/doc/9211094297.html,/JudgeOnline/problem.php?pid=40 这道题目是非常基础的题目,在学习了欧几里德算法之后,应该很好就能做的出来了。注意两个数的最小公倍数和最大公约数之间有关系为: a*b=gcd(a,b)*lcm(a,b); 代码如下: #include using namespace std; inline int Gcd(int m,int n) //求最大公约数 { if (m==0) return n; return Gcd(n%m,m); } int main() { int n,a,b,g; cin>>n; while(n--) { cin>>a>>b; g=Gcd(a,b); cout<

?????≡≡≡)33(mod ) 28(mod )23(mod d n e n p n 那么找到k1、k2、k3满足: k1:k1%23==0&&k1%28==0&&k1%33==1 k2:k2%33==0&&k2%28==0&&k2%23==1 k3:k3%33==0&&k3%23==0&&k3%28==1 则n=k2*p+k3*e+k1*i+k*21252; 代码如下: #include int main() { int n,a,b,c,t; while(scanf("%d%d%d%d",&a,&b,&c,&t),~a) { n=(5544*a+14421*b+1288*c)%21252-t; if(n<=0) n+=21252; printf("%d\n",n); } } 3、韩信点兵 https://www.360docs.net/doc/9211094297.html,/JudgeOnline/problem.php?pid=34 这个题目也是很经典的中国剩余问题类的题目,思路跟上面差不多这道题目因为数据范围很小实际上暴力就可以过,但是这个题目不失为练习中国剩余的很好题目,所以建议大家用中国剩余定理做一下。 直接给出代码: 暴力求解代码: #include main() { int a,b,c,n; scanf("%d%d%d",&a,&b,&c); for(n=11;n<100;n++) if(n%3==a&&n%5==b&&n%7==c) printf("%d\n",n); } 中国剩余定理思路代码:

2017ACM比赛试题

2017年计算机ACM编程竞赛 主办:计算机科学与技术学院 时间:2017-11-22 18:00---20:00 地点:计算机学院奋进楼4楼5机房

竞赛规则 1、比赛时间为120分钟,从18:00开始,20:00结束。 2、比赛形式为上机编程,每个小组使用三台电脑,可任选语言,同一小组不同题目可使用不同语言; 3、比赛期间可以使用自己电脑,不可查阅书籍、但禁止查阅个人U盘,禁止使用手机、电脑进行上网查询,禁止使用现有代码,违者取消比赛资格;(正式ACM中是可以携带纸质材料的,但由于本次比赛,有大量题目参考书上例题,所以就不让携带了) 4、比赛期间,如遇到设备问题,可举手示意工作人员; 5、由于机房电脑系统有重启还原功能,比赛期间请勿轻易重启电脑; 6、【重要】比赛结束后,请确认将所要提交文件拷至工作人员U盘,否则成绩无效概不负责。 提交方式 1、创建文件夹,文件夹命名格式为小组号-小组队长-组员1-组员2 2、将每一题的源程序文件夹以题目编号命名,拷贝至上述创建的文件夹中 3、在本文档中每题相应位置附上源码及截图(windows截图键:Alt+Prt sc sysrq),拷贝至上述创建的文件夹中 4、比赛结束后将上述文件夹拷贝至工作人员U盘中,提交方算完成,提交 完成前请勿重启电脑。 注:本次比赛共14题,满分120分。没有完成题目,但有部分解题步骤者按完成度给分。每道题要有注释。

竞赛题目 1. 青年歌手大奖赛中,评委会给参赛选手打分。选手得分规则为去掉一个最高分和一个最低分,然后计算平均得分,请编程输出某选手的得分。输入数据有多组,每组占一行,每行的第一个数是n(2

部分ACM题目与答案

1001 Sum Problem (2) 1089 A+B for Input-Output Practice (I) (3) 1090 A+B for Input-Output Practice (II) (3) 1091 A+B for Input-Output Practice (III) (3) 1092 A+B for Input-Output Practice (IV) (3) 1093 A+B for Input-Output Practice (V) (3) 1094 A+B for Input-Output Practice (VI) (3) 1095 A+B for Input-Output Practice (VII) (3) 1096 A+B for Input-Output Practice (VIII) (3) 2000 ASCII码排序 (3) 2001计算两点间的距离 (3) 2002计算球体积 (3) 2003求绝对值 (3) 2004成绩转换 (3) 2005第几天? (3) 2006求奇数的乘积 (3) 2007平方和与立方和 (3) 2008数值统计 (3) 2009求数列的和 (3) 2010水仙花数 (3) 2011多项式求和 (3) 2012素数判定 (3) 2014青年歌手大奖赛_评委会打分 (3) 2015偶数求和 (3) 2016数据的交换输出 (3) 2017字符串统计 (3) 2019数列有序! (3) 2020绝对值排序 (3) 2021发工资咯:) (3) 2033人见人爱A+B (3) 2039三角形 (3) 2040亲和数 (3)

历届程序设计acm试题

搜集的南开大学的ACM试题与你共享 [A]南开大学Onlinejudge 在线判题系统https://www.360docs.net/doc/9211094297.html, A.Lucy的新难题 时间限制:2秒内存限制:32000KB 不知不觉,南开大学第三届“我为程序狂”又要拉开帷幕了。这天,Lucy也来到南开大学ACM协会,与大家共同欢庆NKPC的三周岁的日子。 谈笑间,ACM协会的主席拿了圆形的生日蛋糕。大伙开心地唱完了生日歌,一起吹灭了蜡烛。 要分蛋糕了,大家都很兴奋。本着公平的原则,每位到场的人员都要在蛋糕上切一刀。ACM协会的主席事先知道有n位朋友会参与这个欢庆宴会。为了方便大家切蛋糕,主席在订蛋糕的时候就嘱咐在蛋糕的边缘布置上2n朵小花。 每个人切蛋糕都会从蛋糕的边缘的一朵小花笔直地切到蛋糕的另一端的小花,来表达自己对NKPC的祝福。为了尊重其他同学,每个人在切蛋糕一定不会和蛋糕上已有的切痕相交,也不会从别人已切过的小花作为切蛋糕的起点或终点。同时,每位同学在切蛋糕的时候,都要保证后面所有的同学都能够按照上述的规则切蛋糕。这样,蛋糕上就留下n条切痕。 Lucy眨巴眨巴眼睛,问,要是不考虑切蛋糕的先后顺序和谁切的哪一刀,这蛋糕切完了共有多少种切法呢? 大家听了呵呵一笑,说,那就把这个问题留给NKPC3,作为《Lucy的新难题》吧。 相信聪明的你,一定能够帮Lucy解答她的难题的,对吗? 输入包括多组测试数据,你应当处理到输入结束为止。 每组输入数据中,都只有一行,仅包含一个正整数n,且0

四川理工学院2012年ACM程序设计赛试题

2012年四川理工学院“达内杯”大学生程序设计竞赛试题 Problem 1:Sorting There are 16 random sorting numbers from 0 to 15, and they could be converted to different binary numbers, which have 4 digits. Please code algorithm to sort them by the order that the first there digits of the former number is same to the last there digits of the following. The first number of the sorted is always the first given number. Sample Input: 1 3 5 7 9 11 13 15 0 2 4 6 8 10 12 14 Sample Output: 1 2 4 9 3 7 15 14 13 10 5 11 6 12 8 0 Problem 2:Solution of Equation In the interval [0,1], please programming to give the real root, of which error is less than 10-3, of equation ax3+bx2+cx+d=0, where a, b ,c and d are real number. And print the real root or the character “no solution”. Sample Input: 1:a =1 b =-1 c =-2 d =1 2:a =1 b =1 c =1 d =1 Sample Output: 1:x =0.444335937 2:no solution

ACM部分练习题目答案

ACM部分习题答案: A + B Problem Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 100972 Accepted Submission(s): 33404 Problem Description Calculate A + B. Input Each line will contain two integers A and B. Process to end of file. Output For each case, output A + B in one line. Sample Input 1 1 Sample Output 2 # include Int main() {int x,y,s; while(scanf("%d %d",&x,&y)!=EOF) {s=x+y; printf("%d\n",s);} return 0; } Sum Problem Time Limit: 1000/500 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 85964 Accepted Submission(s): 19422 Problem Description Hey, welcome to HDOJ(Hangzhou Dianzi University Online Judge). In this problem, your task is to calculate SUM(n) = 1 + 2 + 3 + ... + n. Input The input will consist of a series of integers n, one integer per line. Output For each case, output SUM(n) in one line, followed by a blank line. You may assume the result will be in the range of 32-bit signed integer. Sample Input 1 100 Sample Output 1 5050 # include int main() {int n; long int s;

北大 poj acm题目推荐50题

-北大poj acm题目推荐50题 POJ == 北京大学ACM在线评测系统https://www.360docs.net/doc/9211094297.html,/JudgeOnline 1. 标记难和稍难的题目大家可以看看,思考一下,不做要求,当然有能力的同学可以直接切掉。 2. 标记为A and B 的题目是比较相似的题目,建议大家两个一起做,可以对比总结,且二者算作一个题目。 3. 列表中大约有70个题目。大家选做其中的50道,且每类题目有最低数量限制。 4. 这里不少题目在BUPT ACM FTP 上面都有代码,请大家合理利用资源。 5. 50个题目要求每个题目都要写总结,养成良好的习惯。 6. 这50道题的规定是我们的建议,如果大家有自己的想法请与我们Email 联系。 7. 建议使用C++ 的同学在POJ 上用G++ 提交。 8. 形成自己编写代码的风格,至少看上去美观,思路清晰(好的代码可以很清楚反映出解题思路)。 9. 这个列表的目的在于让大家对各个方面的算法有个了解,也许要求有些苛刻,教条,请大家谅解,这些是我们这些年的经验总结,所以也请 大家尊重我们的劳动成果。 10. 提交要求:一个总文件夹名为bupt0xx (即你的比赛帐号), 这个文件夹内有各个题目类别的子目录(文件夹),将相应的解题报告放入对应 类别的文件夹。在本学期期末,小学期开始前,将该文件夹的压缩包发至buptacm@https://www.360docs.net/doc/9211094297.html,。 对于每个题目只要求一个POJxxxx.cpp 或POJxxxx.java (xxxx表示POJ该题题号) 的文件,注意不要加入整个project 。 11. 如果有同学很早做完了要求的题目,请尽快和我们联系,我们将指导下一步的训练。 下面是一个解题报告的范例: 例如:POJ1000.cpp

acm编程比赛题

比赛试题 主办方:迅翔计算机协会

【问题描述】 这是一个古老而又经典的问题。用给定的几种钱币凑成某个钱数,一般而言有多种方式。例如:给定了6种钱币面值为2、5、10、20、50、100,用来凑15元,可以用5个2元、1个5元,或者3个5元,或者1个5元、1个10元,等等。显然,最少需要2个钱币才能凑成15元。 你的任务就是,给定若干个互不相同的钱币面值,编程计算,最少需要多少个钱币才能凑成某个给出的钱数。 【要求】 【数据输入】输入可以有多个测试用例。每个测试用例的第一行是待凑的钱数值M(1 <= M <= 2000,整数),接着的一行中,第一个整数K(1 <= K <= 10)表示币种个数,随后是K 个互不相同的钱币面值Ki(1 <= Ki <= 1000)。输入M=0时结束。 【数据输出】每个测试用例输出一行,即凑成钱数值M最少需要的钱币个数。如果凑钱失败,输出“Impossible”。你可以假设,每种待凑钱币的数量是无限多的。 【样例输入】 15 6 2 5 10 20 50 100 1 1 2 【样例输出】 2 Impossible

【问题描述】 Felicia 的生日是11月1日(和Kitty是同一天生的哦)。于是Feli请来Kitty一起过生日。Kitty带来了最新款的“Kitty猫”玩具准备送给Feli,不过她说,这份礼物可不是白送的。Feli要帮她一个忙,才能够得到心仪已久的玩具。Kitty说,“Kitty猫”玩具已经卖出了n!个,n<=10^100 *_*,Kitty想知道确切的数字,而不是无聊的“一个数加个感叹号”。Feli 听了大吃一惊。要知道,算出n!是一个无比艰巨的任务。Feli告诉Kitty,就算Feli算出n!,Kitty也看不下去,因为当n=20 时,计算机的长整型已经存不下了(Kitty只能接受1-9之间的数字)。于是Kitty说,你只要告诉我n!最后一位非0的数就可以了。Feli想了想,立刻动手写了个程序算出了正确的答案。现在,请你也试试看!注意哦,AC的男生将会得到一个“Hello Kitty”计算器(可编程,CPU 1THz,Mem 1TMB),AC的女生将会得到一个仿真“Hello Kitty”宠物(善解人意,无须喂养,智商1101,附带写情书功能)。 【要求】 【数据输入】每行一个n,直到输入数据结束 【数据输出】对应输入的n,每行输出一个答案 【样例输入】 1101 【样例输出】 8

相关文档
最新文档