杭电oj
Minorui
我希望每个人都能以各自的形态,自由生活。而不是千方百计把自己塞进方方正正的模具,压缩成同样形状的罐头。我希望当我年老之后,不会再深夜入睡时,枕头里装满了发霉的梦!
展开
-
hdu
Problem Descriptionwe define f(A) = 1, f(a) = -1, f(B) = 2, f(b) = -2, ... f(Z) = 26, f(z) = -26;Give you a letter x and a number y , you should output the result of y+f(x). InputOn the fi原创 2017-06-22 17:14:05 · 168 阅读 · 0 评论 -
HDU 1872
这一题是判断未知序列是否是稳定的,那我们为什么不用一个稳定的排序方法进行排序再跟它一个一个的比较呢。相同就是稳定的,不同就不稳定,或者直接错误。这种类型的题目用结构体很方便。还有就是我在判断稳定,不稳定,错误这三个上花费了一点时间,所以说细节代码还是不够扎实。加油;#includeusing namespace std;struct nood{ int g; s原创 2017-08-12 21:13:57 · 226 阅读 · 0 评论 -
HDU 1040
#include#includeusing namespace std;int main(){ int n; while(cin>>n) { while(n--) { int m; cin>>m; int a[m]; for(int i=0;i<m;i++) cin>>a[i]; sort(a,a+m); for(int i=0原创 2017-08-12 21:24:37 · 137 阅读 · 0 评论 -
HDU 1106 排序
大概是太菜的缘故,花了蛮长的时间ac,看了提示就是“5”的情况没有全部弄清楚。还有还有就是学到新的东西了,超开心。字符串转整型数组。#include#include#includeusing namespace std;int main(){ char s[1001]; while(cin>>s) { int p=0; char a[1001][100原创 2017-07-28 15:03:33 · 160 阅读 · 0 评论 -
HDU 1716 排序2
这一题我开始用递归做得,但是格式我改不了(太菜了)所以改用STL中的“下一个排列” next_permutation.以后要在格式上下点功夫QAQ#include#includeusing namespace std;int main(){ int sub[5],k=0; while(cin>>sub[0]>>sub[1]>>sub[2]>>sub[3],sub[0]||原创 2017-07-28 19:29:56 · 136 阅读 · 0 评论 -
HDU 1720
#include#includeusing namespace std;int main(){ char a[20],b[20]; while(cin>>a>>b) { int sum1=0,sum2=0,sum=0; int t; int lengh1=strlen(a); int lengh2=strlen(b);原创 2017-08-06 09:23:07 · 249 阅读 · 0 评论 -
HDU 2104
#include#includeusing namespace std;int main(){ int n,m; int c; while(cin>>n>>m,m!=-1&&n!=-1) { while(m!=0) { c=n%m; n=m; m=c; } if(n==1) cout<<"YES"<<原创 2017-08-06 10:00:14 · 334 阅读 · 0 评论 -
HDU 1064
#include#includeusing namespace std;int main(){ double a,sum=0; for(int i=0;i<12;i++) { cin>>a; sum+=a; } printf("$%.2lf\n",sum/12); return 0;}原创 2017-08-06 10:05:30 · 275 阅读 · 0 评论 -
HDU 2734
#include#includeusing namespace std;int main(){ char s[256]; while(gets(s)) { if(s[0]=='#') break; int sum=0; int lengh=strlen(s); for(int i=0;i<lengh;i++) { if(s[i]==' ')原创 2017-08-06 10:23:20 · 311 阅读 · 0 评论 -
HDU 1170
这一题注意的是:两个数相除可能被整除,得到的是一个整数,就不用保留两位小数;#includeusing namespace std;int main(){ int n; while(cin>>n) { char c;int a,b; for(int i=0;i<n;i++) { cin>>c>>a>>b; if(c=='+') co原创 2017-08-06 10:34:05 · 191 阅读 · 0 评论 -
HDU 1197
英文题再容易,看不懂也没辙啊!!#includeusing namespace std;int dec(int i){ int sum=0; while(i) { sum+=i%10; i=i/10; } //cout<<sum<<endl; return sum;}int duo(int i){ int sum=0; while(i) { sum+=原创 2017-08-06 15:25:11 · 183 阅读 · 0 评论 -
HDU 2629
#includeusing namespace std;int main(){ int n; cin>>n; while(n--) { char a[20]; cin>>a; //cout<<a[0]<<a[1]<<endl; int s=(a[0]-'0')*10+(a[1]-'0'); cout<<"He/She is from "; //cout<<s<原创 2017-08-06 15:57:48 · 374 阅读 · 0 评论 -
HDU 2072
用STL比较快#include#include#includeusing namespace std;setdict;int main(){ string s,buf; while(getline(cin,s)) { dict.clear(); if(s[0]=='#') break; stringstream ss(s); while(ss>>buf原创 2017-08-06 17:10:15 · 220 阅读 · 0 评论 -
HDU 1286 找新朋友
虽然简单但还是要记录一下一开始的数据肯定超时,所以要缩小N的范围,取一半,这一半满足的对应的另一半也是满足的。#include#include#includeusing namespace std;int gcd(int x,int y){ int m=x,n=y; int c; while(n!=0) { c=m%n; m=n; n=c; } return原创 2017-07-29 09:35:18 · 154 阅读 · 0 评论 -
HDU 1022
第一次用栈写出来了了;#includeusing namespace std;int stack[10];string s[20];int main(){ int n;string a,b; while(cin>>n>>a>>b) { int top=1,j=0,l=1;; for(int i=0;i<n;i++) { stack[top]=a[i];原创 2017-08-14 16:13:18 · 156 阅读 · 0 评论 -
HDU 1231 最大连续子序列
终于自主做出来动态规划。继续加油啊;我有个传送门:http://blog.csdn.net/xujinsmile/article/details/7840944#include#include#includeusing namespace std;int main(){ int n; while(scanf("%d",&n)&&n){ int a[10010];原创 2017-07-26 10:05:48 · 178 阅读 · 0 评论 -
HDU 1003 Max Sum
一开始用暴力枚举,两层循环时间复杂度为O(n^2),提交不出意外的超时了。想要不超时,很直观的办法就是减少一层循环就行。思路是:假设你已知一段序列中的最大子序列,你可以发现这段子序列的第一个数的前面那些数的和是小于零的,这段序列的最后一个数的后面那些数是小于零的。有这一点可以减小一层循环。#include#define Manx 100010using namesp原创 2017-07-25 09:50:02 · 186 阅读 · 0 评论 -
HDU 1297
一开始我的思路是对的,用了数组存储大整数,一直TIL。我就很纳闷。后来发现,没有打表!!!!如果不打表,每次都要从头开始循环。太浪费时间了。以此谨记;#includeusing namespace std;int sum[1001][1001];void add(int y){ for(int i=0;i<1000;i++)//我看了好几篇博主的,我觉得我的这个代码,可以字符原创 2017-08-08 14:25:51 · 260 阅读 · 0 评论 -
HDU - 1052 Tian Ji -- The Horse Racing
Tian Ji -- The Horse RacingTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 30479 Accepted Submission(s): 9214Problem DescriptionH原创 2017-07-20 10:00:04 · 218 阅读 · 0 评论 -
HDU 1060 Leftmost Digit
(转自网上牛人解题报告)题目大意是输入N,求N^N的最高位数字。1估计大家看到N的范围就没想法了。确实N的数字太大,如果想算出结果,即使不溢出也会超时。题目是这样转化的。首先用科学计数法来表示 N^N = a*10^x; 比如N = 3; 3^3 = 2.7 * 10^1;转载 2017-07-29 16:51:32 · 143 阅读 · 0 评论 -
HDU-Moving Tables
一开始用贪心的,但一直wa,感觉自己太差劲了。所以换了一种想法,即:把过道分成两百段,每次搬运经过的段加1,求最大的数。最大的即为要搬运的次数。#include#includeusing namespace std;int main(){int T;cin>>T;while(T--){int n;cin>>n;int k[405];int原创 2017-07-19 19:19:21 · 173 阅读 · 0 评论 -
hdu 2056
一开始我使用if else 语句来处理条件,好几次没显示过。后来受到其他coder的启发,运用函数体,这样显得代码简便清晰明了。这一题不难,画个图就知道了。(以此为戒)#include#include#includeusing namespace std;double max(double x,double y){if(x>y)return x;原创 2017-07-17 17:37:56 · 208 阅读 · 0 评论 -
HDU 1004 Let the Balloon Rise
虽然很简单但我还是要记录给自己看:这题我的思路是构造一个结构体就可以了#include#include#includeusing namespace std;struct b{ string s; int n;}ball[1001]={{" ",0}};//结构体数组初始化bool cmp(b& a,b& b)//我在这里吃了亏{ return a.n<b.n;原创 2017-07-30 11:36:11 · 151 阅读 · 0 评论 -
HDU 1008 Elevator
#includeusing namespace std;int main(){ int n; while(cin>>n,n) { int floor=0,m; int sum=0; for(int i=0;i<n;i++) { cin>>m; if(m>floor) { sum+=6*(m-floor)+5; floor=m;原创 2017-07-30 17:09:21 · 142 阅读 · 0 评论 -
hdu 2057
学到好东西了,哈哈哈哈!A + B AgainTime Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 28925 Accepted Submission(s): 11749Problem Descripti原创 2017-07-17 19:48:31 · 272 阅读 · 0 评论 -
HDU 1009 FatMouse' Trade
用贪心:#include#includeusing namespace std;struct fat{ int j; int f; double p;}mouse[1001];bool cmp(fat& a, fat& b){ return a.p>b.p;}int main(){ int m,n; while(cin>>m>>n,n!=-1&&m!=-1) {原创 2017-07-30 17:53:14 · 134 阅读 · 0 评论 -
hdu 1061
这一题我有两种解法;1:打表#includeusing namespace std;int main(){int T;cin>>T;int a[10][4] = {{0},{1},{6,2,4,8},{1,3,9,7},{6,4},{5},{6},{1,7,9,3},{6,8,4,2},{1,9}};while(T--){int n;cin>>n;原创 2017-07-18 21:58:12 · 230 阅读 · 0 评论 -
HDU 1013
这一题,要注意的输入的一列数字很可能很长很长,所以要用字符串,我就吃了亏。因为有可能不止一次重复相加,所以我用递归让它自己算了。还用了c++ string。应该比较容易懂。#includeusing namespace std;int slove(int s)//递归{ int x,final=0; x=s; if(x/10==0)//退出条件 return x;原创 2017-08-07 17:25:33 · 205 阅读 · 0 评论 -
HDU 1002 A + B Problem II
关于大整数的模板学习#include#include#includeusing namespace std;struct BigInteger{ static const int BASE = 100000000; static const int WIDTH = 8; vector s; BigInteger(long long num=0)//这个是构造函数,只要你输入原创 2017-07-30 11:01:43 · 144 阅读 · 0 评论 -
HDU 1002
用到了大整数的知识;其实就是两个整型数组的加法;#include#includeusing namespace std;int main(){ int n; cin>>n; int k=1; while(n--) { string s1,s2; cin>>s1>>s2; int j=0; if(k-1!=0) cout<<endl; cout<<"Cas原创 2017-08-07 21:03:53 · 329 阅读 · 0 评论 -
HDU 1789 Doing Homework again
用贪心算法,从最大分数开始,所以是分越大越不能扣分了。难点在于怎么判定某一天是否被占用。#include#includeusing namespace std;int main(){ int T; cin>>T; int a[1005],b[1005],c[1005]; while(T--) { int count=0; memset(c,0,sizeof(c)原创 2017-07-19 21:01:24 · 210 阅读 · 0 评论 -
HDU 1060
这个数学题是真的不会。#include#includeusing namespace std;int main(){ int t; cin>>t; while(t--) { long long n; cin>>n; double t=n*log10(n+0.0); t-=(__int64)t; i转载 2017-08-15 10:35:24 · 187 阅读 · 0 评论