杭电题目练习
花妖huayao
这个作者很懒,什么都没留下…
展开
-
杭电1995
这道题很简单,将汉诺塔的递归调用树画出来就很清楚了。假设n=8,三根柱子编号abc,首先将7个disk由a移到b,然后将disk8由a移到c,然后再将7个disk由b移到c,即完成。也即n=8的问题可以转化为两个n=7的问题。对于任意n,最大的n一定只搬运1次,那么disk7将搬运2ci,依次类推。#include<iostream>#include<cmath>using namespace原创 2016-05-24 20:02:48 · 383 阅读 · 0 评论 -
杭电1034
这道题挺简单的,本来以为遍历会无法通过,但是用遍历的方法尝试竟然通过了。 主要需要注意的是,在每一个round,拥有奇数个candy的小朋友都会变成偶数。#include<iostream>using namespace std;int main(){ int stu; cin>>stu; while(stu!=0){ int round=0;原创 2017-09-20 16:34:01 · 407 阅读 · 0 评论 -
杭电1032
这道题比较简单,主要就是遍历,依次找。#include<iostream>using namespace std;int main(){ int m,n; while(cin>>m>>n){ int max=0; for(int i=(m<n?m:n);i<=(m<n?n:m);i++){ int step=1; int t=i;原创 2017-09-18 19:07:03 · 580 阅读 · 0 评论 -
杭电1030
杭电1030原创 2017-09-18 17:17:00 · 629 阅读 · 0 评论 -
杭电1209
题目很简单,找出时针和分针相对于12转动的度数,相减后去绝对值,判断是否大于180,若大于用360减去该值即得最终结果。需要注意的是在排序时存在角度相同而时间不同的情况,这个时候需要将时间小的放到时间大的前面。因为这个错了很多次!#include<iostream>#include<string>using namespace std;void sort(string time[], do原创 2016-05-23 16:58:25 · 285 阅读 · 0 评论 -
杭电1222
这道题不是很难,可以转化为求最大公因数问题,但是也是想了不少时间。 想到了两种方法,第一种(超时):计算第二次经过0这个位置走的次数,若等于n则完全遍历,若不为n则存在为被遍历的点,然后就是一个循环,没有遍历到的永远不会被遍历到了。 第二种(AC):首先m m%n(为了使m小于n,方便计算) n-m,这三个数结果是相同的。 其次,若m是n的倍数,自然是每一圈都是一个原创 2016-05-20 16:47:11 · 341 阅读 · 0 评论 -
杭电1029
以下为代码#include<iostream>#include<list>using namespace std;int arr[1000000];//定义为全局才不会access violation,arr[i]中存放i出现次数。int main(){ int n; while (cin >> n) { int num; int t原创 2016-05-18 14:56:27 · 239 阅读 · 0 评论 -
杭电1028
嗯,这道题因为用了递归所以是超时,但是答案是对的,也算是一种思路吧,终归想了很久,也记下来吧!#include<iostream>using namespace std;void function(int sum, int x, int &count);//和为sum,第一个数字是n,其后数字都不大于n的表示形式,故不会重复。int main(){ int n; while原创 2016-05-17 20:48:19 · 258 阅读 · 0 评论 -
杭电1027
很简单的一道题,初中时常做,其实就是求第M小的序列 程序写的不很好,有很多重复操作可以用函数,然后设置的变量太多了。 再有就是逻辑是在写的过程中想清楚的,所以错了很多次,这样很不好,还是应该想好再写。 对于这个程序,有两步较重要,就是在交换后,必须保证K后序列为有序且为从小到大。 最后呢,终于对了,还是挺开心!#include<iostream>using namespac原创 2016-05-16 20:37:58 · 381 阅读 · 0 评论 -
杭电1023 train problem2
1.递归(time limit exceeded)但是结果是对的,所以也几下来吧!#include<iostream>void calcu(int inNum, int outNum, long long &sum);using namespace std;int main(){ int n; while (cin >> n) { long long原创 2016-05-15 11:31:22 · 282 阅读 · 0 评论 -
杭电1022 train problem
主要是栈的应用 最后一定注意栈要清空。#include<string>#include<stack>#include<iostream>int main() {int n;string inOrder, outOrder;stack<char> train;char c;while (cin >> n >> inOrder >> outOrder) { int j = 0;原创 2016-05-15 10:17:01 · 317 阅读 · 0 评论 -
杭电1996
题目很简单,有一个递推公式:a(n)=a(n-1)*3,a1=3.#include<iostream>#include<cmath>using namespace std;int main(){ int T; int n; long long s; cin >> T; while (T--) { cin >> n;原创 2016-05-24 20:24:06 · 270 阅读 · 0 评论 -
杭电1035
这道题很简单,用一个矩阵纪录该机器人是否走过某一个地方,当其走过该处纪录当前步数,接着如果走到一个以前走过的地方,就是循环了,若是走到边界就是走出去了。#include<iostream>#include<string>using namespace std;int main(){ int row,col,pos; cin>>row>>col>>pos; while(row!=0&&原创 2017-09-20 17:52:47 · 273 阅读 · 0 评论