杭电水题
YouthJack
菜鸟
展开
-
1012 u Calculate e
#include#include#include#includeusing namespace std;char a[10010];int fac(int n){ int s = 1; for(int i=1;i<=n;i++) s *= i; return s;}int main(){ cout<<"n e"<<endl; cou原创 2015-02-18 11:32:08 · 451 阅读 · 0 评论 -
1196 二进制
主要用到按位运算的性质,以及二进制补码的性质;输入n: 26->11010;则 -n的二进制补码为: -26->00110;则 26 & -26 ->00010->2;#include#include#include#include#include#include#includeusing namespace std;const int MAX = 10010;原创 2015-02-18 18:25:27 · 458 阅读 · 0 评论 -
1028
这题我是不懂的,看完牛人的做法之后才会做,所以这是转载;下面是该大牛的思路:整数划分问题是将一个正整数n拆成一组数连加并等于n的形式,且这组数中的最大加数不大于n。如6的整数划分为 6 5 + 1 4 + 2, 4 + 1 + 1 3 + 3, 3 + 2 + 1, 3 + 1 + 1 + 1 2 + 2 + 2, 2转载 2015-02-18 12:13:38 · 516 阅读 · 0 评论 -
1032 3n+1问题
3n+1在数学界是个神奇的问题,规则如下:任意写出一个自然数N,并且按照以下的规律进行变换:如果是个奇数,则下一步变成3N+1。如果是个偶数,则下一步变成N/2。最后无论给出的整数是哪一个,结局都会得到1。而且目前数学家们还没找到一个数能够打破这规律。当然,我们这一题不是要你找出这个数,而是给定一个闭区间【M,N】,你需要统计这区间内的所有整数回到1经历原创 2015-02-18 12:21:54 · 773 阅读 · 0 评论 -
1042 大数阶乘
参考别人的方法,没什么好说,看码基本都能懂#include#include#include#include#includeusing namespace std;const int MAX = 100001;int main(){ int a[MAX]; int n,i,j,k; while(cin>>n){ a[0] = 1;转载 2015-02-18 13:28:00 · 394 阅读 · 0 评论 -
1061
这道题解法多样,我的是劳模做法。下面附一些大神级别的让人脑洞大开的解法。。。1,、劳模做法:#include#include#include#include#include#includeusing namespace std;const int MAX = 5845;int main(){ long long n; int T; while(ci原创 2015-02-18 14:10:15 · 476 阅读 · 0 评论 -
1097 A hard puzzle
打表大法好#include#include#include#include#include#include#includeusing namespace std;const int MAX = 3600*24;int main(){ int a,b; int s[10][4]={{0,0,0,0},{1,1,1,1},{2,4,8,6},{3,9,7,1}原创 2015-02-18 14:52:34 · 283 阅读 · 0 评论 -
1197
没什么好说,直接贴码。#include#include#include#include#include#include#includeusing namespace std;const int MAX = 10010;int getSum(int n,int m){ int sum=0; while(n) { sum += n%m原创 2015-02-18 18:27:46 · 591 阅读 · 0 评论 -
1302 Snail
水题,直接模拟就可解决。不过有几点需要注意:1、如果刚好到达顶端,不算成功,他还会滑下来(坑爹呢。。。)2、如果刚好到达底部,也还没结束,需要继续进行,知道攀爬高度为负数(也是坑。。。)3、注意数据类型。其他的没什么好说了~~ #include #include #include #include #include #include原创 2015-02-21 20:26:08 · 706 阅读 · 0 评论 -
1017
#include#include#include#includeusing namespace std;const int MAX = 10010;int main(){ int N,n,m,a,b; while(cin>>N) { while(N--) {int flag = 0; int k = 1;原创 2015-02-18 11:56:37 · 380 阅读 · 0 评论 -
1048
凯撒的密码破译,值得注意的一点是,A~E和F~Z的加密方法不同,前者向后移动21位,后者向前移动5位即可#include#include#include#include#includeusing namespace std;const int MAX = 100001;int main(){ char s[300]; while(gets(s)) {原创 2015-02-18 13:32:22 · 403 阅读 · 0 评论 -
1303 Double
排序加判断,这代码略水,见谅见谅 #include #include #include #include #include #include #include #include using namespace std; const int MAX = 100100; int main() {原创 2015-02-21 20:54:06 · 523 阅读 · 0 评论 -
1013 来自杭电discuss版块
因为不会有正数各位之和为0,所以只会有1-9这9个根。假设,数d的根为d%9!!!!!!!!(不取0,整除时取9)首先,1-9这9个数成立假定,d的根为d%9,则d+1的根为d的根+1,即d%9+1=(d+1)%9.得证。第二步详细一点的说明:d表示为a1a2a3a4...aN,d+1表示为a1a2a3a4...(aN+1)d+1与a1a2a3a4...aN+1同根,即d%9+转载 2015-02-18 11:49:46 · 363 阅读 · 0 评论 -
1236排名
排名Problem Description今天的上机考试虽然有实时的Ranklist,但上面的排名只是根据完成的题数排序,没有考虑 每题的分值,所以并不是最后的排名。给定录取分数线,请你写程序找出最后通过分数线的 考生,并将他们的成绩按降序打印。 Input测试输入包含若干场考试的信息。每场考试信息的第1行给出考生人数N ( 0 名原创 2015-02-20 12:13:24 · 496 阅读 · 0 评论 -
1164 分解质因数
#include#include#include#include#include#include#includeusing namespace std;const int MAX = 10010;int main(){ int n; while(cin>>n) { int i; for(i=2;in;i++)转载 2015-02-18 18:12:38 · 1501 阅读 · 0 评论 -
1106
#include#include#include#include#include#include#includeusing namespace std;const int MAX = 990000000;int main(){ char a[1050]; int b[1050]; while(~scanf("%s", a转载 2015-02-18 17:57:04 · 384 阅读 · 0 评论 -
1019 最小公倍数
嗯……求N个数的最小公倍数,容易想到的就是先求前两个的公倍数,然后求这N-1个数的最小公倍数~~#include#include#include#include#includeusing namespace std;const int MAX = 10010;int LCM(int n1,int n2){ int i,t=n1; for(i=1;t%n2;i++原创 2015-02-18 12:02:38 · 414 阅读 · 0 评论 -
1098 数学题
题意如下:给定k,找到最小的a,使得对于任意的整数x,且f(x)=5*x^13+13*x^5+k*a*x,f(x)能被65整除,就输出a,如果找不到,输出no下面是来自论坛的解法分析:解法很简单了,就是保证(18+k*a)%65==0即可,a是最小满足这个式子的正整数。分析证明:5*x^13+13*x^5+k*a*x分成两部分,5*x^13+13*x^5 和 k*a*x。(5*x^转载 2015-02-18 15:10:50 · 709 阅读 · 0 评论 -
1163两道水题结合起来的水题
#include#include#include#include#include#include#includeusing namespace std;const int MAX = 10010;int findroot(int n){ int sum = MAX;; while(sum>=10) { sum = 0; while原创 2015-02-18 18:10:12 · 445 阅读 · 0 评论 -
1009 Fatmouse Trade
水题一条,用贪心就可以解决。以每个房间的Java Beans / Food作为标准排序,最后无法全部交换的需要算百分比换算成JavaBeans;#include#include#include#includeusing namespace std;struct Trade{ int J; int F; double per;}no[1001];bool原创 2015-02-18 11:25:10 · 433 阅读 · 0 评论 -
1056
输入一个浮点数M,求满足1/2+1/3+…+1/n >= M 的最小整数n;#include#include#include#include#includeusing namespace std;const int MAX = 100001;int main(){ double sum,x; int i; while(cin>>x原创 2015-02-18 13:35:53 · 377 阅读 · 0 评论 -
1058
寻找满足只能被2,3,5,7整除的数列#include#include#include#include#include#includeusing namespace std;const int MAX = 5845;int min(int a,int b,int c,int d){ int x = a<b?a:b; int y = c<d?c:d; r转载 2015-02-18 14:06:19 · 428 阅读 · 0 评论 -
1194 方程题
一种简洁地判断impossible的方法:1、输入的数有奇数 2、前一个数减后一个数为负数#include#include#include#include#include#include#includeusing namespace std;const int MAX = 10010;int main(){ int n,a,b; cin>>n;原创 2015-02-18 18:18:39 · 490 阅读 · 0 评论 -
1013
#include#include#include#includeusing namespace std;char a[10010];int main(){ while(cin>>a && a[0]!='0') { int sum; int n=0; int len=strlen(a); for(int i=0;i<原创 2015-02-18 11:44:00 · 463 阅读 · 0 评论 -
1021 不一样的斐波那契
你以为这是斐波那契,然后一个个地求?那你就太天真了。。。在纸上写上几个你就会发现这题其实非常非常简单。。。#include#include#include#include#includeusing namespace std;const int MAX = 10010;int main(){ int n; while(cin>>n) { if原创 2015-02-18 12:04:57 · 749 阅读 · 0 评论 -
1070 Milk
这一题我的数据是惨不忍睹的2/10,足足WA了8次,杀死了无数脑细胞之后才发觉了问题所在不用说,这题用的是贪心算法,需要注意的有几点:1.不足200ml的不会买2.一瓶牛奶最多可以喝1000ml,但不代表1000ml以上的就不买。3.g是代表每天消费的money,这个作为优先排序的标准,这个大家应该都懂。但是当g相等时,下一个标准是体积,而不是价格。。。就是这个让我WA到崩溃。原创 2015-02-18 14:20:33 · 481 阅读 · 0 评论 -
1029
这也是水题,我的做法是用数组a[i]存储数字i出现的次数,然后再判断满足条件的i是哪一个。#include#include#include#include#includeusing namespace std;const int MAX = 1000010;int a[MAX];int main(){ int n,i; while(cin>>n) {原创 2015-02-18 12:17:18 · 571 阅读 · 0 评论 -
1037
这题不难,只要英语水平过关就好。。。去掉那些没用的信息,这题要我们做的就是输入3个数,如果这三个数都大于168,就输出”NO CRASH‘“,如果这三个数中有小于等于168的,输出”CRASH"+第一个小于168的数。。。#include#include#include#include#includeusing namespace std;const int MAX = 100原创 2015-02-18 12:34:53 · 496 阅读 · 0 评论 -
1201 18岁生日
这题不难,多注意细节这是某好心人给的测试数据:132004-1-222004-2-282004-2-292004-4-202003-2-202003-2-282003-3-202002-2-202002-2-282002-3-202001-2-202001-2-282001-3-20结果:65756575-1657465756575转载 2015-02-23 15:18:43 · 417 阅读 · 0 评论
分享