洛谷-入门5-字符串3
P1553 数字反转升级版题目背景以下为原题面仅供参考:给定一个数请将该数各个位上数字反转得到一个新数。这次与 NOIp2011 普及组第一题不同的是这个数可以是小数分数百分数整数。整数反转是将所有数位对调小数反转是把整数部分的数反转再将小数部分的数反转不交换整数部分与小数部分分数反转是把分母的数反转再把分子的数反转不交换分子与分母百分数的分子一定是整数百分数只改变数字部分。整数新数也应满足整数的常见形式即除非给定的原数为零否则反转后得到的新数的最高位数字不应为零小数新数的末尾不为 0除非小数部分除了 0 没有别的数那么只保留1个 0分数不约分分子和分母都不是小数约分滴童鞋抱歉了不能过哦。输入数据保证分母不为 0本次没有负数。题目描述给定一个数请将该数各个位上数字反转得到一个新数。这次与 NOIp2011 普及组第一题不同的是这个数可以是小数分数百分数整数。整数反转是将所有数位对调。小数反转是把整数部分的数反转再将小数部分的数反转不交换整数部分与小数部分。分数反转是把分母的数反转再把分子的数反转不交换分子与分母。百分数的分子一定是整数百分数只改变数字部分。输入格式一个实数 s输出格式一个实数即 s 的反转数输入输出样例输入 #1复制5087462输出 #1复制2647805输入 #2复制600.084输出 #2复制6.48输入 #3复制700/27输出 #3复制7/72输入 #4复制8670%输出 #4复制768%说明/提示【数据范围】对于 25% 的数据s 是整数不大于 20 位对于 25% 的数据s 是小数整数部分和小数部分均不大于 10 位对于 25% 的数据s 是分数分子和分母均不大于 10 位对于 25% 的数据s 是百分数分子不大于 19 位。【数据保证】对于整数翻转而言整数原数和整数新数满足整数的常见形式即除非给定的原数为零否则反转后得到的新数和原来的数字的最高位数字不应为零。对于小数翻转而言其小数点前面部分同上小数点后面部分的形式保证满足小数的常见形式也就是末尾没有多余的 0小数部分除了 0 没有别的数那么只保留 1 个 0。若反转之后末尾数字出现 0请省略多余的 0对于分数翻转而言分数不约分分子和分母都不是小数。输入的分母不为 0。与整数翻转相关规定见上。对于百分数翻转而言见与整数翻转相关内容。数据不存在负数。实现代码#includebits/stdc.h using namespace std; int n; string s; char ch; int main(){ cins; int sum0; for(int i0;is.size();i){ if(s[i]0s[i]9){ sum; } else{ chs[i]; break; } } int xsum; sum--; while(s[sum]0sum0){ sum--; } for(int isum;i0;i--){ couts[i]; } if(ch0) return 0; else if(ch%){ cout%; return 0; } else coutch; int ms.size()-1; while(s[x1]0x1m){ x; } while(s[m]0mx1){ m--; } for(int im;ix1;i--){ couts[i]; } return 0; }P1603 斯诺登的密码题目背景根据斯诺登事件出的一道水题// 数据已经修正 By absi2011 如果还有问题请联系我题目描述2013 年 X 月 X 日俄罗斯办理了斯诺登的护照于是他混迹于一架开往委内瑞拉的飞机。但是这件事情太不周密了因为 FBI 的间谍早已获悉他的具体位置——但这不是最重要的——最重要的是如果要去委内瑞拉那么就要经过古巴而经过古巴的路在美国的掌控之中。丧心病狂的奥巴马迫降斯诺登的飞机搜查时却发现斯诺登杳无踪迹。但是在据说是斯诺登的座位上发现了一张纸条。纸条由纯英文构成Obama is a two five zero.以.结束输出只有 6 个单词 一个句号句子开头如没有大写亦为合法这句话虽然有点无厘头但是警官陈珺骛发现这是一条极其重要的线索。他在斯诺登截获的一台笔记本中找到了一个 C 程序输入这条句子后立马给出了相对应的密码。陈珺鹜高兴得晕了过去身为警官的你把字条和程序带上了飞机准备飞往曼哈顿国际机场但是在飞机上检查的时候发现——程序被粉碎了飞机抵达华盛顿只剩 5 分钟你必须在这 5 分钟内编写杜撰一个程序免受上司的 10000000000mod10 大板。破译密码的步骤如下找出句子中所有用英文表示的数字 (≤20)列举在下正规zero one two three four five six seven eight nine ten eleven twelve thirteen fourteen fifteen sixteen seventeen eighteen nineteen twenty非正规a both another first second third为避免造成歧义another算作 1 处理。将这些数字平方后对 100 取模如 0→0→005→25→2519→361→61。把这些两位数按任意顺序按数位排成一行组成一个新数如果开头为 0就去 0如 {00,25,61}→2561。找出所有排列方法中最小的一个数即为密码。输入格式一个含有 6 个单词的句子。保证整个句子的字符个数包括空格不超过 1000。输出格式一个整型变量密码。如果没有符合要求的数字出现则输出 0。输入输出样例输入 #1复制Black Obama is two five zero .输出 #1复制425实现代码#includebits/stdc.h using namespace std; const int N1000; mapstring,int q; int n; int as[N]; string s; char ch; int main(){ q[one]1;q[two]2;q[three]3;q[four]4;q[five]5;q[six]6;q[seven]7;q[eight]8;q[nine]9;q[ten]10; q[eleven]11;q[twelve]12;q[thirteen]13;q[fourteen]14;q[fifteen]15;q[sixteen]16;q[seventeen]17;q[eighteen]18;q[nineteen]19;q[twenty]20; q[a]1;q[both]2;q[another]1;q[first]1;q[second]2;q[third]3; for(int i1;i6;i){ cins; if(q[s]){ int kq[s]*q[s]%100; if(k0) continue; as[n]k; } } if(n0){ cout0; return 0; } sort(as,asn-1); coutas[0]; for(int i1;in;i){ if(as[i]10) cout0; coutas[i]; } return 0; }P1200 [USACO1.1] 你的飞碟在这儿 Your Ride Is Here题目描述众所周知在每一个彗星后都有一只 UFO。这些 UFO 时常来收集地球上的忠诚支持者。不幸的是他们的飞碟每次出行都只能带上一组支持者。因此他们要用一种聪明的方案让这些小组提前知道谁会被彗星带走。他们为每个彗星起了一个名字通过这些名字来决定这个小组是不是被带走的那个特定的小组你认为是谁给这些彗星取的名字呢。关于如何搭配的细节会在下面告诉你你的任务是写一个程序通过小组名和彗星名来决定这个小组是否能被那颗彗星后面的 UFO 带走。小组名和彗星名都以下列方式转换成一个数字最终的数字就是名字中所有字母的积其中 A 是 1Z 是 26。例如USACO 小组就是 21×19×1×3×1517955。如果小组的数字 mod47 等于彗星的数字 mod47你就得告诉这个小组需要准备好被带走记住“amodb”是 a 除以 b 的余数例如 34mod10 等于 4写出一个程序读入彗星名和小组名并算出用上面的方案能否将两个名字搭配起来如果能搭配就输出GO否则输出STAY。小组名和彗星名均是没有空格或标点的一串大写字母不超过 6 个字母。输入格式第 1 行一个长度为 1 到 6 的大写字母串表示彗星的名字。第 2 行一个长度为 1 到 6 的大写字母串表示队伍的名字。输出格式无输入输出样例输入 #1复制COMETQ HVNGAT输出 #1复制GO输入 #2复制ABSTAR USACO输出 #2复制STAY说明/提示题目翻译来自 NOCOW。USACO Training Section 1.1实现代码#includebits/stdc.h using namespace std; const int N1000; int n,sum1,cnt1; int as[N]; string s,ss; char ch; int main(){ cinsss; for(int i0;is.size();i){ sum*int(s[i]-A1); sumsum%47; } for(int i0;iss.size();i){ cnt*int(ss[i]-A1); cntcnt%47; } if(sumcnt){ coutGO; } else coutSTAY; return 0; }P1597 语句解析题目背景木有背景……题目描述一串长度不超过 255 的 PASCAL 语言代码只有 a,b,c 三个变量而且只有赋值语句赋值只能是一个一位的数字或一个变量每条赋值语句的格式是[变量]:[变量或一位整数];。未赋值的变量值为 0 输出 a,b,c 的值。输入格式一串符合语法的 PASCAL 语言只有 a,b,c 三个变量而且只有赋值语句赋值只能是一个一位的数字或一个变量未赋值的变量值为 0。输出格式输出 a,b,c 最终的值。输入输出样例输入 #1复制a:3;b:4;c:5;输出 #1复制3 4 5说明/提示输入的 PASCAL 语言长度不超过 255。实现代码#includecstdio using namespace std; int a[3]; char s1,s2; int main(){ while (scanf(%c:%c;,s1,s2)2) a[s1-a]s20 s29 ? s2-0 : a[s2-a]; printf(%d %d %d,a[0],a[1],a[2]); }P1598 [USACO03FEB] 垂直柱状图 Vertical Histogram题目描述写一个程序从输入文件中去读取四行大写字母全都是大写的每行不超过 100 个字符然后用柱状图输出每个字符在输入文件中出现的次数。严格地按照输出样例来安排你的输出格式。输入格式四行字符由大写字母组成每行不超过 100 个字符。输出格式由若干行组成前几行由空格和星号组成最后一行则是由空格和字母组成的。在任何一行末尾不要打印不需要的多余空格。不要打印任何空行。输入输出样例输入 #1复制THE QUICK BROWN FOX JUMPED OVER THE LAZY DOG. THIS IS AN EXAMPLE TO TEST FOR YOUR HISTOGRAM PROGRAM. HELLO!输出 #1复制* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * A B C D E F G H I J K L M N O P Q R S T U V W X Y Z说明/提示每行输出后面不允许出现多余的空格。实现代码#includebits/stdc.h using namespace std; const int N1000; int n,sum1,cnt1; int a[N]; char b[N][N]; string s,s1,s2,s3,s4; char ch; int main(){ getline(cin,s1); getline(cin,s2); getline(cin,s3); getline(cin,s4); for(int i0;is1.size();i){ if(s1[i]As1[i]Z){ a[s1[i]-A1]; } } for(int i0;is2.size();i){ if(s2[i]As2[i]Z){ a[s2[i]-A1]; } } for(int i0;is3.size();i){ if(s3[i]As3[i]Z){ a[s3[i]-A1]; } } for(int i0;is4.size();i){ if(s4[i]As4[i]Z){ a[s4[i]-A1]; } } int maxn0; for(int i1;i26;i){ maxnmax(maxn,a[i]); } for(int i1;i26;i){ for(int jmaxn;jmaxn-a[i]1;j--){ b[j][i]*; } for(int jmaxn-a[i];j1;j--){ b[j][i] ; } b[maxn1][i]iA-1; } for(int i1;imaxn1;i){ for(int j1;j51;j){ if(j%20){ cout ; continue; } coutb[i][j/21]; } coutendl; } return 0; }
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2469703.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!