acm书中题目
闻道-问道
这个作者很懒,什么都没留下…
展开
-
acm书中题目 b-2
题目大概: 要求输入一对对数据,如果再输入是能用其中一组数据调出另一组数据。 思路: 两组数据之间的关系用map来实现比较简单,因为要判断空行,所以我用了getline()来输入,用空来判断空行。 感想: 用空来判断空行确实难以想到,这是我查资料知道的。 代码: #include #include #include #include using namespace st原创 2017-03-19 14:53:52 · 240 阅读 · 0 评论 -
acm书中题目 L-12
题目大概: 这个题目是让我们帮忙翻译几句话,先要输入n,表示输入n行字符串,接下来的n行要输入不超过70个字符的字符串(包含空格 , 等字符)。要求逆序输出。 思路: 一看完题,感觉很简单,就用string接受字符 getline输入;然后倒序输出就行了。在输入中,在输入n后,要求换行后,才能再输入第一行字符串。但在调试中发现,再输入n后,再按回车,程序会输出两行空格,也就是两个换行原创 2017-03-09 10:01:16 · 323 阅读 · 2 评论 -
acm书中题目 j-10
题目大概: 输入n行string类型的大写26位英文字母,把他们变为他们的后一个英文字母输出,Z变为A。 思路: string类型可以当作数组用,只需在循环里让他们加1就好了,但最后的z,要另作处理。 感想: 这个题的感想是关于getline()的使用的,在我发的第一个博客里有提到,当输入上一个内容后,再按回车的话,getline()会读入这个回车,在这里我也遇到了同样的问题,但我从网上原创 2017-03-11 16:28:58 · 281 阅读 · 0 评论 -
acm书中题目 N-14
题目大概:原创 2017-03-11 15:27:04 · 241 阅读 · 0 评论 -
acm书中题目 k-11
题目大概: 输入n组数据,每组把不同高度的积木,移动至相同高度,求最少需要移动的积木数量。 思路: 先开一个无限循环,当n是0时退出,用动态数组存储数据,把所有数据加和求平均,再用每个数减去平均数除2就是最少积木数。 感想: 这次运用动态数组,第一次提交,数组越界,我本以为我用动态数组了,另一个用来输入的数组便不用是不是越界了,没想到也是要考虑的。还有就是这个题很细节,在最后输出的数后面原创 2017-03-12 15:30:46 · 281 阅读 · 0 评论 -
acm书中题目 o-15
题目大概: 要求输入n,随后输入n行数据,每行一种颜色英文,输出出现最多的颜色。 思路: 这个题用multiset集合做,会比较简单,用向量存储数据,放入集合中,然后用erase()函数删除数据并得到数据个数,比较个数,输出最多的颜色。 感想: 当做到这个题时,我终于感受到了stl的好用,这个题如果不用stl,就要用循环,字符串比较函数等等,慢慢比较计算最多的颜色,比较麻烦,时间复杂度也原创 2017-03-12 16:15:02 · 259 阅读 · 0 评论 -
acm书中题目 m-13
题目大概: 一行输入多个数字,判断有几对二倍数(一个数是另一个的二倍)。-1结束输入。思路 思路: 建立一个向量,输入数据,并且把向量中的数据存储到集合中。从第一个开始,用count(2*需判断的数),来判断。 感想: 用集合存储数据会自动排好序,可以让我们更方便的处理数据,减少了处理数据的过程。 代码: #include #include #include #i原创 2017-03-14 19:58:17 · 292 阅读 · 0 评论 -
acm书中题目 u-21
题目大概: 找出100000以内的3和5的倍数包含自身,输入n,则输出第n个数。 思路: 先建立一个二维数组,把100000以内的这些倍数先存好,再开始输入n,输出第n个数。 感想: 这个题用了预处理的思想,如果要输入n个数,相当于只进行了一次计算,计算量大大减少。实际上,我第一次做使用的一维数组保存这些数,但发现第99999个数和第100000个数为0,因为不知道原因,所以用了二维数组原创 2017-03-14 20:19:39 · 323 阅读 · 0 评论 -
acm书中题目 w-23
题目大概: 输入一个矩形的长和宽,然后输入矩形状的由1和0构成的数,若这些数不全为1,并且这些数中的0不挨着0,就输出yes,否则输出no。当输入0 0时结束输入。 思路: 用二维数组储存数据,用两个数控制题目中的两个要求,满足则输出yes,反之no。 感想: 做这个题,思维要严谨,把可能的包含在内,不可能的也不能包含进去。 代码: #include using name原创 2017-03-14 20:29:41 · 306 阅读 · 0 评论 -
acm书中题目 t-20
题目大概: 输入b,n,输出a,要求a的n次方最接近b。 思路: 用循环,计算a的n次方,计算出a的n次方与b的差值,当发现差值减少时,输出前一个a。 感想: 发现做题时心静,因为今天做题时,感觉特别舒服,没半点不适,可能是我做题时心不着急,一直不急不燥的在做。 代码: #include using namespace std; int main() {int b,n原创 2017-03-16 21:53:12 · 233 阅读 · 0 评论 -
acm书中题目 y-25
题目大概: 输入n,输入n行数字,接下来,每行按输入顺序,输出每个数字出现的次数后面紧跟该数字。 思路: 用string储存,用循环读取每个数字,再计数,输出。 感想: 这个题有个别数字需要初始化,需要注意。 代码: #include #include using namespace std; int main() {int n; cin>>n; for(int原创 2017-03-16 21:56:04 · 232 阅读 · 0 评论 -
acm书中题目 p-16
题目大概: 输入m磅粮食,n个房间,每个房间粮食兑换金钱的比例不同,输出能兑换的最多金钱。 思路: 分别用不同数组或向量存储数据,计算出每个房间的金钱兑换比例,排序一下,从最高的开始兑换。 感想: 这个题刚开始是c c++语言混合使用的,提交竟然发现编译错误,虽然两种语言混合使用方便许多,但以后还要尽可能用一种语言。 代码: #include #include usi原创 2017-03-16 22:37:00 · 216 阅读 · 0 评论 -
acm书中题目 r-18
题目大概: 一个数的两个因子(不是1和他本身)都是素数,则它是半素数。输出。 思路: 先找到这个数的两个因子,然后判断是否都为素数。 感想: 比以前的求素数稍微提高了一点麻烦程度。只是刚开始遇见个那几个有关素数的单词不认识。 代码: #include #include using namespace std; int main() {int n; while(c原创 2017-03-18 09:27:25 · 261 阅读 · 0 评论 -
acm书中题目 z-26
题目大概: 测试两个名字的缩写是否相同,即两个名字每个单词的首字母是否相同。 思路: 用string存储,用循环测试,若输出的两个名字单词不一样多,直接输出不同。 感想: 无 代码: #include #include using namespace std; int main() {int n,m,k; string a[10],b[10]; cin>>n; for(i原创 2017-03-18 10:18:33 · 229 阅读 · 0 评论 -
stl使用总结
对于stl的使用,我感觉到确实比普通的打代码手段要方便。 首先string这个字符串,就char方便,string可以用+ 代替字符串复制函数,==代替字符串比较函数,还可以像字符串数组一样用a{5}这种表示形式,等等还有很多。 对于map set,这个跟不用多说了,放进去的元素自动排序,map还可以一一对应输入输出,可以用做char a[5]数组下标和数组内容交换。 对于s原创 2017-03-19 19:04:01 · 276 阅读 · 0 评论