杭电OJ
文章平均质量分 53
wjzz
ML/DL
展开
-
HDOJ 1010 Tempter of the Bone(搜索,奇偶剪枝)
【题意】:输入三个数N、M、T,分别代表行列时间。迷宫中S代表初始位置,D代表门,'.'代表可以走的路。小狗一秒只移动一格。有解输出YES,没有NO。原创 2015-03-11 23:08:29 · 514 阅读 · 0 评论 -
HDOJ 1013 Digital Roots
【题意】找数根,所谓的数根用例子来说明。如果是24,则24相加,如果结果是单位数,则为数根。如果是39,相加得12,则再次相加得3为数根。注意:题目没有说明整数范围,其实整数范围很大,至少1000位。思路:用字符串存刚开始的数,然后将各位相加。后边用不到对字符串的处理,因为每一位最大为9,1000位不过9000,所以后边存在int里处理就行。【代码:WA】#include原创 2015-01-28 22:28:04 · 567 阅读 · 0 评论 -
HDOJ 1279 验证角谷猜想(水)
【思路】:水题。空格格式的控制和No number can be output !的输出可以用一个flag来控制。【AC代码】:#include #include #include #include #include #include using namespace std;/* run this program using the console pauser or add原创 2015-02-25 14:26:14 · 657 阅读 · 0 评论 -
HDOJ 1202 The calculation of GPA
【思路】:模拟。【注意】:题目要求的是实型。并且题目有没说清楚的地方,全部缺考和学分*点数为0这两种情况都算GPA不存在!参考:http://blog.csdn.net/liuzhushiqiang/article/details/8603798【AC代码】:#include #include #include #include #include #include us原创 2015-02-22 23:56:24 · 731 阅读 · 0 评论 -
HDOJ 1008 Elevator
题目:在我们城市中,最高的大楼只有一部电梯,一个请求list由N个正数组成。数字代表了电梯将在哪个楼层停下,以一个特殊的顺序。电梯上升一层需要6s,下降一层需要4s。电梯将在每一个楼层呆5s。对于一个给定的list,你需要求满足list所话费的时间。电梯最开始在0层并且不需要再完成后返回0层。比较简单,没什么可说的。【代码:AC】#include using namespace st原创 2015-01-27 22:53:08 · 645 阅读 · 0 评论 -
HDOJ 1005 Number Sequence
题意:f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7.给出A,B,n求f(n)。 (1 【代码1:MLE】#include using namespace std;#define MAX 100000000+2int num[MAX];int main(){ int A = 0,原创 2015-01-27 21:46:33 · 542 阅读 · 0 评论 -
HDOJ 1070 Milk
【题意】喝牛奶,1. 每天喝200ml。2. 最多喝5天,超过5天剩下多少也不喝了。3. 剩下的如果小于一天喝的(200ml)就不要了。 4. 所有的牛奶都是当天产的。5. 按照每天的价格选择最便宜的。6. 如果价格都是最便宜的,选择大瓶(容量大)的。【代码:WA】:考虑错了2,5,6条件。#include #include #include #include原创 2015-01-30 22:53:49 · 628 阅读 · 0 评论 -
HDOJ 1029 Ignatius and the Princess IV
【题意】:输入一串数字,在这串数字中招special number数字,这个数字至少出现了(N+1)/2次。思路:qsort排序后,数出现的次数。注意0和最后。【代码:AC】#include #include #include #include #include using namespace std;#define MAX 1000000+2int cmp(原创 2015-01-29 22:53:57 · 555 阅读 · 0 评论 -
HDOJ 1004 Let the Balloon Rise(排序)
【思路】:常规思路是存在则加一,不存在则插入。这次用的是先排序然后计算次数,两层循环就行。至于网上其他大神的二叉树巴拉巴拉的,我等写不出来。。【注意】:最开始也写了个计算次数的,想用一层循环,不过细节不好处理,WA找不出原因就放弃了。【AC代码】:#include #include #include #include #include #include using name原创 2015-02-25 16:09:27 · 551 阅读 · 0 评论 -
HDOJ 1236 排名(排序)(浙大2005研究生复试)
【思路】:排序。【注意】:qsort用法,字符串不要相减,用strmcp。升序a在前,b在后。降序相反。【AC代码】:#include #include #include #include using namespace std;#define MAX 20+2struct Candidate{ char num[MAX]; int score;};原创 2015-02-24 19:45:38 · 578 阅读 · 0 评论 -
HDOJ 1014 Uniform Generator
【题意】计算机模拟都需要随机数。一个产生伪随机数的方法是通过一个 seed(x+1) = [seed(x) + STEP] % MOD 这样形式的方法。如果不用STEP的话,将产生很有规律的随机数从0-mod-1,这样不好。如果加上STEP,例如 STEP = 3 and MOD = 5,则产生0, 3, 1, 4, 2,称为uniform distribution(均匀分布)。如果是STEP原创 2015-01-28 23:01:17 · 661 阅读 · 0 评论 -
HDOJ 1048 The Hardest Problem Ever
【题意】:很普通的解码问题,所有的大写字母左移5位。注意A-E的移动是加21,其他的减5。【代码:AC】#include #include #include #include #include using namespace std;#define MAX 200+10int main(){ char str[MAX]; while (gets(str))原创 2015-01-29 23:51:24 · 788 阅读 · 0 评论 -
HDOJ 1170 Balloon Comes!
【题意】:输入一个符号(加减乘除) 后边跟上两个操作数。输出结果,如果不是整数,保留两位小数。注意:The result should be rounded to 2 decimal placesIf and only if it is not an integer.需要判断是不是整数,不是全部保留两位小数。可以对整个字符串分割,或者采用一个char加两个int的输入。【AC代码】:原创 2015-02-22 11:31:25 · 1651 阅读 · 0 评论 -
HDOJ 1164 Eddy's research I
【题意】:对一个数进行因式分解。【思路】:打表后一个一个除,最大数是65535,所以10000的质数范围苟用。【AC代码】:#include #include #include #include #include #include using namespace std;#define MAX 10000int cnt;int prime_list[MAX];原创 2015-02-22 22:10:55 · 663 阅读 · 0 评论 -
HDOJ 1108 最小公倍数(水)
【思路】:可移步至多个数的最小公倍数1019。【AC代码】:#include #include #include #include #include #include using namespace std;/* run this program using the console pauser or add your own getch, system("pause") o原创 2015-02-28 23:07:17 · 634 阅读 · 0 评论 -
HDOJ 1062 Rightmost Digit
【题意】求N^N,输出最右边的那一位。【代码1:获得周期】#include #include #include #include #include using namespace std;int main(){ int N = 0; cin >> N; while (N--) { int mul = 1, n = 0, r =原创 2015-01-30 23:34:54 · 557 阅读 · 0 评论 -
HDOJ 1266 Reverse Number(字符串数字转换)
【思路】:本以为用atoi和itoa两种函数就可以完成,结果悲剧了。如下:1. 输入时int范围的,但是转换后可能不是int范围内,所以要用long long,注意(long 和 int 范围相同)。所以试着谢了下atoll函数,结果居然可用!!!可是居然在OJ上不识别!2. 换了方法,但是在这个方法中知道 cout 【代码】:#include #include #inclu原创 2015-02-25 11:09:00 · 703 阅读 · 0 评论 -
HDOJ 1248 寒冰王座(找规律)
【思路】:找规律,参考的别人的,自己写的挂了。http://blog.csdn.net/appte/article/details/8227632【AC代码】:#include #include #include #include using namespace std;int main(){ //freopen("in.txt", "r", stdin);原创 2015-02-24 21:54:13 · 999 阅读 · 0 评论 -
HDOJ 1106 排序
【题意】:直接求解就行。注意这个测试用例 15555555555552。WA一次(缺少temp为0的判断): if (!strlen(temp)) continue;【代码:AC】#include #include #include #include #include using namespace std;#de原创 2015-02-01 12:14:04 · 899 阅读 · 0 评论 -
HDOJ 1098 Ignatius's puzzle(数学)
【题意+题解+代码】:http://blog.csdn.net/iamskying/article/details/4737920 很详细。求解思路:f(x)=5*x^13+13*x^5+k*a*x;其中题中"f(x)|65"表示对于任意的整数x,f(x)都能被65整除.所以不难推断:f(x+1)|65也成立. f(x+1)=5*(x+1)^13+13*原创 2015-02-28 22:58:14 · 702 阅读 · 0 评论 -
HDOJ 1282 回文数猜想(字符串)
【思路】:字符串操作,注意一个条件是(特别说明:输入的数据保证中间结果小于2^31。),所以在全过程中可以使用atoi()和itoa()函数。【AC代码】:#include #include #include #include #include #include using namespace std;/* run this program using the console原创 2015-02-25 15:04:18 · 592 阅读 · 0 评论 -
HDOJ 1097 A hard puzzle
【题意】:输入a,b,数字a^b最后边的那个数字。思路:知道n个数相乘,最后一位的周期最大为4就行。【代码】#include #include using namespace std;int main(){ int a = 0, b = 0; while (cin >> a >> b) { int t[4], temp = a%10;原创 2015-02-01 11:25:47 · 846 阅读 · 0 评论 -
HDOJ 1017 A Mathematical Curiosity
【题意】给出两个数n和m,计算这样的数对a和b。 0 < a < b < n and (a^2+b^2 +m)/(ab) 是一个整数。问题包含多组测试样例。第一行是一个整数N,然后一行包含在N个输入块中。每个输入块的形式在题目描述中已经说明。在两个输入块中包含一个空行。输入形式包含多个输出块,之间有空行。注意:1. 判断一个数是整数的方法。2.整数、浮点数比较不要用==。3.格式是两个原创 2015-01-28 21:49:33 · 664 阅读 · 0 评论 -
HDOJ 1235 统计同成绩学生人数(水)(浙大2006研究生复试)
【思路】:纯水。【AC代码】:#include #include #include #include using namespace std;#define MAX 1000+10int main(){ //freopen("in.txt", "r", stdin); int n = 0; int num[MAX]; while (cin原创 2015-02-24 18:30:34 · 844 阅读 · 0 评论 -
HDOJ 1234 开门人和关门人(排序)(浙大2005研究生复试)
【思路】:简单排序后取到达时间最小,离开时间最大。【注意】:qsort用法:qsort(num,100,sizeof(num[0]),cmp)。*(int*)a 的意思是首先a是一个指针,然后把a转换成int型指针后取a的值。【AC代码】:#include #include #include #include using namespace std;#define MAX原创 2015-02-24 17:41:32 · 758 阅读 · 0 评论 -
HDOJ 1219 AC Me(有问题!)
【思路】:只要不用switch就可以。【注意】:本题在for循环中采用如下方式会TLEfor (i = 0; i 采用这种则ACfor (i = 0; str[i] != '\0'; i++)【TLE代码】:#include #include #include using namespace std;#define MAX 100000+1int main()原创 2015-02-24 16:49:33 · 675 阅读 · 1 评论 -
HDOJ 1205 吃糖果(数学)
【思路】:把吃糖的行为看成是两两消除的行为,所以如果想全部消除,取决于数量最多的那种。所以得出公式:max - (sum-max)另外:要采用longlong型。【AC代码】:#include #include #include #include #include #include using namespace std;#define MAX 1000000+10in原创 2015-02-24 15:35:18 · 899 阅读 · 0 评论 -
HDOJ 1196 Lowest Bit
【题意】:给一个数,找其二进制的最低位n,输出2^n。比如 11010为10输出2,11000 is 1000输出8。思路:按照二进制算法来就行。【AC代码】:#include #include #include #include #include #include using namespace std;#define MAX 30int main(){原创 2015-02-22 11:53:16 · 1226 阅读 · 0 评论 -
HDOJ 1089-1096 A+B for Input-Output Practice
【1089】#include #include #include #include #include using namespace std;int main(){ int a = 0, b = 0; while (cin >> a >> b) cout << a+b <<endl; return 0;}【1090】#inclu原创 2015-01-31 16:04:20 · 949 阅读 · 0 评论 -
杭电HDOJ题目分类
转自:http://hi.baidu.com/dongjinwei86/blog/item/4c345c0a626fb31295ca6b4b.html基础题:1000、1001、1004、1005、1008、1012、1013、1014、1017、1019、1021、1028、1029、1032、1037、1040、1048、1056、1058、1061、1070、1076、1089、原创 2015-01-26 20:17:35 · 724 阅读 · 0 评论 -
HDOJ 1283 最简单的计算机(水)
【思路】:水。【AC代码】:#include #include #include #include #include #include using namespace std;/* run this program using the console pauser or add your own getch, system("pause") or input loop */原创 2015-02-25 15:22:44 · 449 阅读 · 0 评论 -
HDOJ 1163 Eddy's digital Roots(简单数论)
【思路】:http://blog.csdn.net/iamskying/article/details/4738838求解思路:现在分析一个问题,假设将十位数为a,个位数为b的一个整数表示为ab,则推导得ab*ab = (a*10+b)*(a*10+b) = 100*a*a+10*2*a*b+b*b根据上式可得:root(ab*ab) = a*a+2*a*b+b*b = (a+b)原创 2015-03-01 23:56:29 · 635 阅读 · 0 评论 -
HDOJ 1012 u Calculate e
题意:对e的一个简单的数学公式是:。当n趋向于无穷的时候,越大结果越准确。没有输入,输出n为0-9的时候e的值,注意输出格式。注意:1、cal_e()的循环需要有等号。2、c++小数点的格式。【代码:AC】#include #include using namespace std;int fac(int a){ int i = 0; int f =原创 2015-01-27 23:25:59 · 590 阅读 · 0 评论 -
HDOJ 1040 As Easy As A+B
【题意】:排序。思路qsort。输出优点蛋疼,两次PE,最后的数后边没有空格,但是每一行都有一个回车,不是最后一行没有。【代码:AC】#include #include #include #include #include using namespace std;#define MAX 1000+10int cmp(const void *a, const void原创 2015-01-29 23:46:50 · 871 阅读 · 0 评论 -
HDOJ 1019 Least Common Multiple(数学)
【题意】:求多个数的最小公倍数。【思路】:求最小公倍数可以先求最大公约数。求最大公约数两种方法:短除法和辗转相处法。两者之间的关系:两个数为ab,最大公约数为p,最小公倍数为q,则ab=pq!【AC代码】:短除法。注意:先除后乘,否则溢出。#include #include #include #include #include #include using namespac原创 2015-02-28 21:46:04 · 584 阅读 · 0 评论 -
HDOJ 1201 18岁生日
【思路】:无论如何都要经过18年,所以问题就是判断18年是否是闰年。注意:2月以后判断从下一年开始的18年,2月以前判断从今年开始的18年。另外还有一个2月29生日的特判。Ps.一年是365天,不是356天!【AC代码】:#include #include #include #include #include #include using namespace std;int原创 2015-02-22 23:21:03 · 624 阅读 · 0 评论 -
HDOJ 1194 Beat the Spread!
【题意】:给出两个数 m n,第一个数是另外两个数a b的和,第二个数是a b的差的绝对值(absolute difference)。输出这两个数a b,大的在前。【思路】:大的数等于 (m+n)/2,小的等于m-大的。【注意】:impossible的判断。分两种,一种是m如果m+n为奇数,则a b不存在。【AC代码】:#include #include #include #原创 2015-02-22 22:35:36 · 593 阅读 · 0 评论 -
HDOJ 1076 An Easy Task
【题意】:输入两个数,Y和N。输出从Y(如果Y是闰年则包含Y)开始的第N个闰年。【代码:AC】#include #include #include #include #include using namespace std;int isLeapYear(int year){ if ((year%4 == 0 && year%100 != 0) || (year%4原创 2015-01-30 22:34:30 · 701 阅读 · 0 评论 -
HDOJ 1056 HangOver
【题意】:如果你有一张卡,你最多可以让一半悬浮出来。两张卡的话,上边的卡可以悬浮在下边卡,露出一半的长度。下边的卡最桌子来说露出三分之一的长度,总长度1/2+1/3,三张的话就是1/2+1/3+1/4,一次类推。输入包含多组数据c,0.00表示结束。数据是介于0.01~5.20之间的浮点数。输出可以实现数据c需要的最小卡片数。【代码:WA】#include #include #原创 2015-01-30 00:45:40 · 649 阅读 · 0 评论 -
HDOJ 1037 Keep on Truckin'
【题意】:一个高168英尺的船(或者类似的),是否能撞上高为a,b,c的underpasses。思路:三个数比较大小,理解题意就行。【代码:AC】#include #include #include #include #include using namespace std;int main(){ const int s = 168; int a = 0原创 2015-01-29 23:11:42 · 583 阅读 · 0 评论