UVA
听峰问雨
这个作者很懒,什么都没留下…
展开
-
UVA10055 - Hashmat the Brave Warrior
问题描述输入两个数 a,b,比较两个差值。思路输入两个数大小没有规定,所以两者取绝对值,由于输入的数值不大于2^32,所以数据类型int无法存储,应该用long long。代码#include<iostream>#include<cmath>using namespace std;int main(){ long long a,b; while(cin>>a>>b)原创 2016-08-19 14:07:58 · 353 阅读 · 0 评论 -
UVA10878 - Decode the tape
问题描述从输入的一系列字符中,找出规律,从而转换后输出相应字符串。思路将’o’看成1,‘ ’看成0,从而一行组成一串二进制数值,将这二进制转换成ascII值并比较时发现与输出的字符一致。 通过数组相应数据能够更快解决题目。代码#include <iostream>#include <cstring>#include <cstdio>using namespace std;int main(原创 2016-08-24 01:09:22 · 211 阅读 · 0 评论 -
UVA10815 - Andy's First Dictionary
问题描述输入一个文本,将不同的单词按字典序从小到大排列,不区分大小写。 思路学习了使用c++中STL的set容器,从而将每个单词看出一个整体进行存储,其中使用stringstream将一个文本中的单词可以逐个分开。代码此代码为《算法竞赛入门经典(第2版)》中的代码,由于简便清晰,因此加以借鉴学习。#include <iostream>#include <cstdio>#include <sst原创 2016-08-24 01:24:02 · 369 阅读 · 0 评论 -
UVA409 - Excuses, Excuses!
问题描述n个关键字,m个句子,输出句子中存在最多关键字的句子(如果关键字数量相同,则按顺序输出)。思路将所需的字符全部转换成小写,用一个数组g来存储一个单词,然后判断是否为英文字母,如果是,则存储,否则一个单词结束,然后逐一比较关键字。 PS:同样的思路WA多次后才发现,记录关键字的数组没有初始化。多组测试数据时,应注意对数组及变量进行初始化。代码#include <iostream>#incl原创 2016-09-04 02:53:33 · 272 阅读 · 0 评论 -
UVA644 - Immediate Decodability
问题描述输入一系列二进制字符串,判断是否这些二进制中是否为另外一个二进制的前缀,或者存在相等的二进制。思路学会strstr()函数,可以让代码更加清楚明了。 strstr(str1,str2):判断字符串str2是否为str1的子串,如果是,则该函数返回str2在str1中首次出现的地址;否则,返回NULL 。代码#include <iostream>#include <cstring>#in原创 2016-09-05 01:16:51 · 181 阅读 · 0 评论 -
UVA10115 - Automatic Editing
问题描述输入一系列的替换规则,然后输入一个字符串,然后在字符串中,寻找相同的字符进行规则转换,直到不能转换后输出。思路学习string类型,将许多步骤简化封装,从而被更好的利用。代码#include <iostream>#include <cstring>#include <cctype>#include <cstdio>#include <string>using namespace s原创 2016-09-05 01:57:10 · 185 阅读 · 0 评论 -
UVA340 - Master-Mind Hints
问题描述猜数字,先给定四个数,然后再输入四个数,如果数字和位置一致,则a++,如果数字正确,则为b++,结果输出(a,b)思路学习了map以后,发现可以将各种数据类型联系起来,先记录正确数值,在开始判断数值且位置相等,则A++,然后计算总共猜对了B个数后结果为(A,B-A)代码#include <cstdio>#include <iostream>#include <algorithm>#in原创 2016-09-18 01:18:13 · 262 阅读 · 0 评论 -
UVA424 - Integer Inquiry
问题描述多个大数相加求和。思路用数组存储大数,之后模拟运算。代码#include <iostream>#include <cstdio>#include <cmath>#include <cstring>using namespace std;void revers(char s[]){ int c,i,j; for(i=0,j=strlen(s)-1;i<j;i++,j原创 2016-09-06 00:19:13 · 245 阅读 · 0 评论 -
UVA10106 - Product
问题描述求两个大数相乘的积。思路套用刘汝佳的《算法竞赛入门经典》的大数模板,实用,可惜代码有点长。代码#include <cstdio>#include <cstring>#include <algorithm>#include <iostream>using namespace std;const int maxn=600; //一个数为最大为250,因此乘积因大于500str原创 2016-09-06 00:23:09 · 223 阅读 · 0 评论 -
UVA465 - Overflow
问题描述判断两个数以及相加或相乘的结果是否超出int类型值得范围思路套用刘汝佳的大数模板,结果遇到两个错误。 Runtime Error:开的数组太小了(不懂具体开多少),尽量开大。 Wrong Answer:开始计算前应当注意清除两个大数的前缀0(但是输出的时候应是原样输出)。代码#include <cstdio>#include <cstring>#include <algorithm>原创 2016-09-06 01:15:27 · 273 阅读 · 1 评论 -
UVA10494 - If We Were a Child Again
问题描述输入两个数求余和求模的结果思路套用大数模板。。代码#include <cstdio>#include <cstring>#include <algorithm>#include <iostream>using namespace std;const int maxn=1000;struct bign{ int len,s[maxn]; bign() {原创 2016-09-06 01:30:36 · 227 阅读 · 0 评论 -
UVA748 - Exponentiation
问题描述求小数R的n次方,且小数点前的0删除。思路将小数点舍去看成n个大数R相乘,之后再输出小数点。代码#include <cstdio>#include <cstring>#include <string>#include <algorithm>#include <iostream>using namespace std;const int maxn=1000;struct bign原创 2016-09-06 02:51:00 · 291 阅读 · 0 评论 -
UVA10420 - List of Conquests
问题描述输入国名和英文名,然后统计出每个国家人出现的次数并按国家排序。思路学习c++中的stl的map,从而能够将字符串和数值匹配起来(其中存入map中的字符串会按字典序进行排列)。代码#include <iostream>#include <map>#include <string>using namespace std;int main(){ int n; string原创 2016-09-22 20:10:14 · 221 阅读 · 0 评论 -
UVA488 - Triangle Wave
问题描述 第一行,表示有多少个测试数据,第二行有一个空格(可以自动忽略),之后第三行表示波的高度(即最高达到的数值),第四行表示波的频率(即重复的次数)思路两组测试数据之间存在空格,但是最后一组数据后面不能输出空格,否则会Wrong Answer。(感觉应该是 Presentation Error会更准确)代码#include <iostream>using namespace std;int原创 2016-08-20 18:16:42 · 275 阅读 · 0 评论 -
UVA537 - Artificial Intelligence?
问题描述 输入一系列字符串,从中找到物理的相关的两个变量的值,根据公式求另外一个变量的值。思路看似简单,实际上在字符串中获取变量的相关信息有点麻烦,巧用常量数组节省多余计算,学习运用sscanf()函数能够很快将字符转换成数值类型进行存储。代码#include <iostream>#include <cstring>#include <cstdio>using namespace std;原创 2016-08-23 00:56:48 · 282 阅读 · 0 评论 -
UVA10361 - Automatic Poetry
问题描述 第一行输入字符串形势如同s1<s2>s3<s4>s5,第二行输入的字符串中,将s2和s4互换,并输出("<>"不输出)。思路将字符串分隔存储,然后进行处理,看懂题意并不难,难得是如何让自己写的代码能够简洁明了。代码#include <iostream>#include <string>#include <cstdio>#include <cstring>const int max原创 2016-08-23 00:38:05 · 218 阅读 · 0 评论 -
UVA10071 - Back to High School Physics
问题描述 如果t时间后的速度为v,那么2*t的时间内的位移是多少?思路多组测试数据,纯物理问题,2*t时间中速度达到2*v,位移公式s=(0+2∗v)/2∗2∗t=2∗v∗ts=(0+2*v)/2*2*t=2*v*t代码#include<iostream>using namespace std;int main(){ int v,t; while(cin>>v>>t)原创 2016-08-19 14:23:45 · 260 阅读 · 0 评论 -
UVA10300 - Ecological Premium
问题描述英语翻译可知,一个农民的奖金=农场的面积*环境友好度/动物数量*动物数量=农场面积*环境友好度。思路根据公式计算出一个农民的奖金,之后计算全部农民的奖金即第一个数*第三个数的总和。 取值范围超出int,应使用long long。代码#include<iostream>using namespace std;int main(){ int n,f; long long原创 2016-08-19 14:58:22 · 288 阅读 · 2 评论 -
UVA458 - The Decoder
问题描述输入多个字符串,经过某种变化后,输出相应字符串。 思路比较输入和输出字符之间的ASCII码表,发现两个字符之间输入字符-7=输出字符。代码#include<iostream>#include<string>using namespace std;int main(){ string s; while(getline(cin,s)) { for原创 2016-08-19 19:12:01 · 290 阅读 · 0 评论 -
UVA494 - Kindergarten Counting Game
问题描述 多组数据,每行输入一串英文,输出这个英文中有多少个单词思路通过判断这个字符为字母并且下一个字符不为字母时单词总数加1,之前感觉本题数据存在bug,比如”3d b2b”,但是发现输入的最后一句要求单词是一系列的英文字符序列,所以可以不用考虑此类数据。代码#include<iostream>#include<cstdio>#include<cctype>#include<cstring原创 2016-08-19 23:44:21 · 243 阅读 · 0 评论 -
UVA414 - Machined Surfaces
问题描述 输入多行,每行25个字符,左右为X,中间为空格,当将左边的X平移至与右侧X相连后停止,求平移后之间存在几个空格。思路ans=总空格数-行数*每行中空格最少的数。注意数据中的B是文中的空格,需要替换。代码#include <cstdio>#include <cstring>#include <iostream>using namespace std;int main(){原创 2016-08-20 17:03:23 · 271 阅读 · 0 评论 -
UVA490 - Rotating Sentences
问题描述 将输入的句子当初矩阵后顺时针旋转90度后输出思路二维数组存储字符,之后根据需求逐一输出,并且以长度最长的字符串作为矩阵的一边。代码#include <cstdio>#include <cstring>#include <iostream>using namespace std;int main(){ char a[110][110]; int str,line原创 2016-08-20 17:56:53 · 257 阅读 · 0 评论 -
UVA445 - Marvelous Mazes
问题描述 根据它的要求输出相应的字符。思路判断这个字符是否为数字,如果是不断叠加s的值,如果不是数字,则输出题目中相对应的字符,并重置s的值。代码#include <cstdio>#include <cstring>#include <iostream>#include <cctype>using namespace std;int main(){ char a[200];原创 2016-08-20 18:05:00 · 228 阅读 · 0 评论 -
UVA489 - Hangman Judge
问题描述 输入一个要猜测的答案字符串s,猜的字符串s2,判断猜测的字符错误次数为7次以内,7次以内并且全部猜中算赢,如果没猜中,则算放弃,如果错7次或以上则判定为输。思路进行比较字符时,将比较成功的字符改成空格,极大简化了步骤。代码紫书(《算法竞赛入门经典(第二版)》)中的代码简洁明了。#include <iostream>#include <cstdio>#include <cstring>原创 2016-08-21 01:24:09 · 198 阅读 · 0 评论 -
UVA694 - The Collatz Sequence
问题描述 3n+1问题,A序列中,从第一项a开始,如果a为偶数,则下一项为a=a/2,否则a=3*a+1,直到a=1后停止,问在限定范围内该序列有多少个?思路根据题意模拟,如果超出给定范围或者序列结束,输出结果。题目中存在陷阱,它的数据范围要比int类型大,但是又要求能够被32位机存储,所以使用的数据类型为long或者long long代码#include <iostream>using nam原创 2016-08-21 01:54:17 · 205 阅读 · 0 评论 -
UVA457 - Linear Cellular Automata
问题描述 输入一个DNA数组,给定第一天的数值,有之后的数值为DNA[temp]里的值(temp=前一天左边的数值+前一天自身的数值+前一天右边的数值)。 例如:根据样例,第一天第20个位置的值1,其余的数值为0,第二天,第20个位置的值为DNA[temp](temp=第19位置的值+20位置的值+21位置的值=0+1+0=1)=DNA[1]=1。思路英文翻译题,看懂题目就不会很难,根据题意模拟原创 2016-08-21 02:19:55 · 678 阅读 · 0 评论 -
UVA401 - Palindromes
问题描述 输入一串字符串,判断它是否为回文串还是镜像串(根据要求改变后再翻转和原字符串相同)。思路定义常量数组来存储相关数据,从而更加清晰,并且节省代码量。代码根据《算法竞赛入门经典(第2版)》的代码可以从中学到定义常量数组能够让代码更加清楚明了。#include <iostream>#include <algorithm>#include <cstdio>#include <cstring原创 2016-08-22 18:04:42 · 277 阅读 · 0 评论 -
UVA10010 - Where's Waldorf?
问题描述 输入n*m字符矩阵,有k个字符串(全部均在字符矩阵中),判断这些字符串在字符矩阵中开始的哪个位置。思路暴力搜索,DFS(深度优先搜索)。从字符矩阵的第一个位置开始往它的八个方向开始比对,如果字符不一样,则往另一个方向进行查找,如果字符串不一样,则从字符矩阵的第二个位置开始继续查找,如果字符串相同,则输出该字符矩阵的下标。代码#include <iostream>#include <cs原创 2016-08-22 18:24:42 · 257 阅读 · 0 评论 -
UVA10250 - The Other Two Trees
问题描述已知A,B两点的坐标,求C,D的坐标,其中AB·CD==-1(两条线段垂直平分)思路百度学习了一个定理,然后将A,B两点移动到以原点为中点,然后带入公式后AC(测试结果和样例不一样)已知对任意平面向量AB=(x,y),把向量AB绕其起点沿逆时针方向旋转角a得到向量AP=(x*cosa-y*sina,x*sina+y*cosa).代码#include <iostream>#include原创 2016-09-22 21:48:14 · 243 阅读 · 0 评论