您的位置:首页 > 其它

poj入门水题整理1--按刷题顺序解释

2016-08-07 17:45 239 查看
1.1000 A+B就是熟悉平台的一道题,下面有案例2.1004 Financial Management描述:Larry毕业之后挣钱了想知道他的财务状况,他现在有他的存款清单,想知道他12个月的结余有多少输入:12行数字输出:12个月的平均值,精确到分解法:依次读入12个月的金额,输出平均值就好,记得要加一个$3.3980 取模运算没什么好说的,注意洗poj的答题模式,会给出一个文件,文件里会有很多行,不止case里给出的这么少,然后和它的标准输出对比,如果都一样,就会AC了。
while((scanf("%d %d",&a,&b)!=EOF)){
这个就是读取一直到文件结尾的一种方法,poj里还会出现其他格式的结尾,题目里会有描述,注意仔细看题。
4.2521 How much did the businessman lose
描述:商人做生意有亏有赚,如果有个给了假币,商人会亏损:货物价格+找钱价格输入:N商品价格            M出售的价格            P假币价格            C找钱的价格0 0 0 0 代表输入结束注意:N<M,P也有可能小于M,因为买东西的不全是假币输出:商人赔了多少钱如果赚了,就输出负数。解法:四个数加加减减= 。=5.3086 Triangular Sums描述:三角数T(n)=1+2+...+n.然后给了个例子,是边长为4的三角形,这个三角形的权重是W(n) = SUM[k = 1…n; k * T(k + 1)]输入:N代表有几个例子,后面跟着N行数值n(1<=n<=300),输出:N那行不输出,其余的行输出:这是输出的第几行 n w(n)解法:按照说明直接暴力计算就可以了,没什么大问题6.1207 The 3n + 1 problem有个算法,n为奇数 n=3n+1,n为偶数,n=n/2,得到的值在不断循环这个过程,直到为1则停止。比如给出22,给出的结果序列就是22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1 22的循环长度就是16输入:i,j 且0<,j<10000输出:i j 和在数字ij之间,最长的循环长度解法:设立max=0,从i开始,计算每个数字的循环长度,如果大于max,则重置max,然后输出i,j,max就可以了7.1003 Hangover描述:能用牌伸出桌子多远呢?最上面的伸出1/2,第二张牌伸出第2张牌的1/3,然后1/4,1/5,最下面的牌长1/(n+1)输入:c,是0.01~5.20之间的一个数字,0.00代表结束输入,c包含3位小数输出:需要多少张牌才能达到c这个长度解法:就是计算1/2+1/3+...+ 1/(n + 1)>=c,这个n最小是多少           记得输出 n空格card(s),不要少东西8.3210 Coins描述:Snoopy有3个硬币,他想通过翻转使这3个硬币都朝上或朝下,一次只能翻转一个硬币,一个硬币可以被翻转多次,他最后发现无论开始是怎样的配置,都可以通过2次翻达到目标,他也发现不能通过少于2次翻转来达成目标。Snoopy现在想要知道,有n个硬币时,最少需要x次翻转能完成目标,这个x是多少。注意:是对所有配置都翻转x次,这个x最小是多少input:n,n<10000,0表示结束output:输出最小的n,如果没有最小的n,就输出No Solution!(注意感叹号)解法:1)n为偶数时,奇数面朝上一定要奇数翻转才可以达成目标,偶数面向上一定要偶数次翻转才能达成目标,x不可能同时为奇偶,所以x不存在2)n为奇数时,奇数面朝上全翻到朝下就是偶数面朝下全部翻到朝下等同于偶数面朝上全部翻到朝上。      全部向上或向下时,需要偶数次翻转可以达成目标,所以x为偶数      当有1面朝上时,因为x为偶数,所以一定要翻转那n-1个才可以达成目标,所以x至少为n-1      x不可能大于n,此时可以把所有的硬币都翻一遍,不满足最少,所以至少为n-19.1002 487-3279描述:有些电话会用字母替代数字方便记忆,以下是一些字母和数字的等价关系A, B, and C map to 2 D, E, and F map to 3 G, H, and I map to 4 J, K, and L map to 5 M, N, and O map to 6 P, R, and S map to 7 T, U, and V map to 8 W, X, and Y map to 9 有时候为了方便记忆,也会采用不标准的格式记忆,如3-10-10-10的标准格式局势310-1010现在希望把所有的不标准的电话号码转换为标准的格式,同时,希望在电话簿检查没有2个公司的号码一致。输入:N代表电话簿的行数,接下来的N行表示电话簿内的电话输出:按字母升序输出重复的电话号码空格在电话簿内出现的次数           如果没有重复,输出No duplicates. (注意最后的点)解法:只要将字母转化为对应的数字,去掉-,在第三位后面加上-就可以了,然后排序,计算重复次数,同时设置flag=0,如果有重复次数,flag位置1,最后如果还是0的话表示没有重复,输出No duplicates. 即可10.1663 Number Steps描述:按照图片方式排列的点,想知道在(x,y)是否有写数字输入:N代表N行输入,接下来N行输入x,y输出:在(x,y)处写的数字,如果该处没有数字的话,则写No Number解法:自己找找规律就好,其实就是2条直线,计算下公式,看点是否落在上面
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: