算法竞赛入门经典
土豆呀土豆
这个作者很懒,什么都没留下…
展开
-
算法竞赛入门经典(第二版)第二章循环结构程序设计例题与提示上
2.1for循环尽管for循环反复执行相同的语句,但这些语句每次执行效果往往不同建议尽量缩短变量的定义范围。例如,在for循环的初始化部分定义循环变量编写程序时要特别留意“当前行”的跳转和变量的改变例题 2-1 aabb输出所有形如aabb的4位完全平方数。-伪代码for(int a=1;a<9;a++)for(int b=0;b<9;b++)if(aabb...原创 2018-10-11 13:46:03 · 130 阅读 · 0 评论 -
算法竞赛入门经典(第二版)第三章数组和字符串习题3-3数数字
把前n(n&lt;=10000)个整数顺次卸载一起:123456789101112…数一数0~9各出现多少次(输出10个整数,分别是0,1,…,9出现的次数)#include&lt;stdio.h&gt;#define N 100000char s[N],temp[10];int count[10];int main(){ int t,n,i; scanf("%d",&am原创 2018-10-16 23:49:40 · 112 阅读 · 0 评论 -
算法竞赛入门经典(第二版)第三章数组和字符串习题3-2分子量
给出一种物质的分子式不带括号,求分子量。本题中的分子式只包含4种原子分别为CHON,原子量分别为12.01,1.008,16.00,14.01(单位g/mol)。例如,C6H5OH的分子量是94.108g/mol#include <stdio.h>int main(){ float c=12.01,h=1.008,o=16.00,n=14.01; float nu...原创 2018-10-16 23:41:53 · 253 阅读 · 0 评论 -
算法竞赛入门经典(第二版)第三章数组和字符串习题3-1得分
给出一个由O和X组成的串(长度1-80)统计得分。每个O的得分为目前连续出现的O的个数,X的得分为0。#include <stdio.h>int main(){ int b=0,c=0; int j=1; char a[80]; scanf("%s",a); for(int i=0;a[i]!='\0';i++) { ...原创 2018-10-16 23:36:21 · 349 阅读 · 0 评论 -
算法竞赛入门经典(第二版)第三章数组和字符串中竞赛题目例题3-5 生成元
如果x加上x的各个数字之和得到y,就说x是y的生成元。给出n(1&lt;=n&lt;=100000)求最小生成元。无解输出0.例如n=216时的解为198分析本题看起来是个数学题实则不然。假设所求生成元为m不难发现m&lt;n.换句话说只需枚举所有的m&lt;n看看有没有哪个数是n的生成元只需一次性枚举100000内所有的正整数m标记“m加上m的各个数字之和得到的数有一个生成元是m”最后查表...原创 2018-10-16 20:55:27 · 193 阅读 · 0 评论 -
算法竞赛入门经典(第二版)第三章数组和字符串中竞赛题目例题3-4猜数字
实现一个经典猜数字游戏。给定答案序列和用户猜的序列,统计有多少数字位置正确A,有多少数字在两个序列都出现过但位置不对B输入包含多组数据。每组第一行为序列长度为n,第二行是答案序列,接下来是若干猜测序列。猜测序列全0时该组数据结束。n=0时输入结束[分析]直接统计可得A,为了求B对于每个数字,统计二者出现的次数c1和c2,则min(c1,c2)就是该数字对B的贡献最后要减去A的部分。#i...原创 2018-10-16 20:41:46 · 381 阅读 · 0 评论 -
算法竞赛入门经典(第二版)第三章数组和字符串中竞赛题目选讲例题3-3回文词
输入一个字符串,判断它是否为回文串以及镜像串。输入字符串保证不含数字0。所谓回文串,就是反转以后和原串相同,如abba和madam。所有镜像串,就是左右镜像之后和原串相同,如2S和3AIAE。注意,并不是每个字符在镜像之后都能得到一个合法字符。在本题中,每个字符的镜像如图3-3所示(空白项表示该字符镜像后不能得到一个合法字符)。**既然不包含空白字符可以安全地使用scanf输入。回文串和镜像...原创 2018-10-16 20:16:27 · 243 阅读 · 0 评论 -
算法竞赛入门经典(第二版)第三章数组和字符串中竞赛题目选讲例题3-2WERTYU
把手放在键盘上时,稍不注意就会往右错一位。这样,输入Q会变成输入W,输入J会变成输入K等。输入一个错位后敲出的字符串(所有字母均为大写),输出打字员本来想打出的句子。输入保证合法,即一定是错位之后的字符串。例如输入中不会出现大写字母A。#include<stdio.h>char s[]="'1234567890-=QWERTYUIOP[]\\ASDFGHJKL;'ZXCVBNM,...原创 2018-10-14 00:25:40 · 164 阅读 · 0 评论 -
算法竞赛入门经典(第二版)第三章数组和字符串中竞赛题目选讲1
3-1例题tex中的引号在TeX中,左双引号是“"”,右双引号是“"”,输入一篇包含双引号的文章你的任务是把它转换成tex的格式样例输入:“you are smart,”样例输出“you are smart,”使用fgetc(fin)可以打开的文件fin中读取一个字符。一般情况下应当在检查它不是EOF后再将其转换成char值。从标准输入读取一个字符可以用getchar,它等价于f...原创 2018-10-14 00:15:20 · 134 阅读 · 0 评论 -
算法竞赛入门经典(第二版)第三章数组和字符串例题与提示下
程序3-3蛇形填数在nxn方阵里填入1,2,……,nxn,要求填成蛇形。例如,n=4时方阵为:10 11 12 19 16 13 28 15 14 37 6 5 4上面方阵中多余空格只是为了便于观察规律可以用int a[max][max]生成一个整型的二维数组,其中max和max不必相等。这个数组共有max x max个元素,分别为a[0][1],a[0][1],……,a...原创 2018-10-13 21:23:05 · 147 阅读 · 0 评论 -
算法竞赛入门经典(第二版)第三章数组和字符串例题与提示上
3.1数组程序3-1 逆序输出#include&lt;stdio.h&gt;#define max 105int a[max];int main(){ int x,n=0; while(scanf("%d",&amp;x)==1) { a[n++]=x; } for(int i=n-1;i&gt;=1;i--)原创 2018-10-13 19:43:37 · 151 阅读 · 0 评论 -
算法竞赛入门经典(第二版)第二章循环结构程序设计注解与习题下
2-4子序列的和输入两个正整数n&lt;m&lt;10^6,输出1/ n^2+1/ (n+1)^2+……+1/ m^2,保留5位小数。输入包含多组数据,结束标记为n=m=0.提示:本题有陷阱本题思路在于乘法溢出的问题陷阱就是关于int类型的极限,因为Int的上限是2^32-1#include &lt;stdio.h&gt;int main(){ int n,m...原创 2018-10-13 17:26:10 · 323 阅读 · 0 评论 -
算法竞赛入门经典(第二版)第二章循环结构程序设计注解与习题上
习题2-1水仙花数输出100-999中的所有水仙花数。若三位数ABC满足ABC=A^3+ B^3+ C^3,则称其为水仙花数。例如153= 1^3+ 5^3+ 3^3,所以153是水仙花数#include<stdio.h>int main(){int i; for(i=100;i<=999;i++) { int b=i%10;//个位数 ...原创 2018-10-13 16:33:27 · 165 阅读 · 0 评论 -
算法竞赛入门经典(第二版)第一章程序设计例题与提示下
例题1-4鸡兔同笼已知鸡和兔的总数量为n,总腿数为m。输入m和n,依次输入鸡的数目和兔的数目。如果无解则输出no answer.#include <stdio.h>int main(){ int a,b,n,m; scanf("%d%d",&n,&m); a=(4*n-m)/2; b=n-a; if(m%2==1||a&...原创 2018-09-27 23:45:01 · 75 阅读 · 0 评论 -
算法竞赛入门经典(第二版)第一章程序设计例题与提示上
例题1-1圆柱体的表面积输入底面半径r和高h输出圆柱体的表面积,保留3位小数样例输入:3.5 9样例输出area=274.889#include <stdio.h>#include <math.h>int main(){const double pi =acos(-1,0)double r,h,s1,s2,s;scanf("%lf%lf",&...原创 2018-09-27 22:15:46 · 352 阅读 · 1 评论 -
算法竞赛入门经典(第二版)第二章循环结构程序设计例题与提示下
2.3 循环的代价例题2-4阶乘之和输入n,计算s=1!+2!+3!+…+n!。n&lt;=le-6。样例输入:10样例输出:37913//第一个版本int main(){ int n,s=0; scanf("%d",&amp;n); for(int i=1;i&lt;=n;i++) { int factorial=原创 2018-10-12 01:09:13 · 243 阅读 · 0 评论 -
算法竞赛入门经典(第二版)第三章数组和字符串习题3-4周期串
如果一个字符串可以由某个长度为k的字符串重复多次得到,则称该串以k为周期。例如abcabcabc以3为周期(注意,它也以6和12为周期)。输入一个长度不超过80的字符串,输出其最小周期#include<stdio.h>int main(){ char a[100]; int len; int b=0;//判断变量 int k; scanf(...原创 2018-10-16 23:52:50 · 264 阅读 · 0 评论