
杭电题目
dtwd886
这个作者很懒,什么都没留下…
展开
-
杭电5914-斐波那契数列思路
#include #include #include #include using namespace std;int flag[25];int node[20];void getSum(){ int i; node[0]=1; flag[1]=1; node[1]=1; for(i=2;;i++) { node[i]原创 2017-07-12 22:18:41 · 393 阅读 · 0 评论 -
杭电5610
#include #include #define inf 2<<28using namespace std;int main(){ int T,i,j; int a,b,c,flag,flag1,min,min1,min2; scanf("%d",&T); while(T--) { min=inf; flag=1; scanf("%d%d%d",&a,&b,&c)原创 2016-04-20 13:35:22 · 223 阅读 · 0 评论 -
杭电2844
#include #include #include using namespace std;int n,m;int w[110],v[110];int sum[110];int capacity;int dp[100010];void CompletePack(int j){ int i; for(i=w[j];i<=capacity;i++) { dp[i]=ma原创 2016-05-25 20:39:47 · 323 阅读 · 0 评论 -
杭电5422
看到题目时,以为很难,当初杭电上的这题我也没有做,结果组长又在考试中出了,然后没时间做了...实际上连边时保证有1到n的边就可以保证距离最小了,为1。至于方案数,只用判断一下1到n是否已经有边了,有边的话,就有n*(n+1)/2种方案,即随便连;没边的话就只有将1到n连起来这种方案了。#include #include #include using namespace std;in原创 2016-05-25 19:23:53 · 236 阅读 · 0 评论 -
杭电2132
#include #include using namespace std;long long sum[100010];int main(){ long long i; int n; sum[1]=1; sum[2]=3; sum[3]=30; for(i=4;i<=100000;i++) { if(i%3==0)原创 2016-04-15 23:42:54 · 377 阅读 · 0 评论 -
杭电2163
#include #include #include using namespace std;int main(){ string s,s1; int Case=1; while(cin>>s&&s!="STOP") { s1=s; reverse(s.begin(),s.end()); if(s1==s)原创 2016-04-15 23:41:12 · 295 阅读 · 0 评论 -
杭电1161
#include #include using namespace std;int main(){ string s; int i; while(getline(cin,s)) { for(i=0;i<s.size();i++) { if(s[i]>='A'&&s[i]<='Z')原创 2016-04-15 23:39:39 · 329 阅读 · 0 评论 -
杭电2187
#include #include #include using namespace std;struct node{ int price,weight;}stu[1100];bool cmp(node x,node y){ return x.price<y.price;}int main(){ int C,n,m,i,num; double sum; sca原创 2016-04-15 23:37:38 · 406 阅读 · 0 评论 -
杭电1172
#include #include #include using namespace std;int main(){ int N,i,j,sum1,flag,flag2,sum2,sumall,Numfinal,k,t; int A[110],B[110],C[110]; int num[4]; int flag1[4]; int sum[4]; while(~scanf(原创 2016-04-10 00:10:33 · 504 阅读 · 0 评论 -
杭电4535
#include #include using namespace std;int main(){ int T,i,n; long long a[110]; a[1]=0; a[2]=1; for(i=3;i<=100;i++) a[i]=(i-1)*(a[i-1]+a[i-2])%1000000007; scanf("%d",&T); while(T--) { sc原创 2016-04-09 22:59:07 · 208 阅读 · 0 评论 -
杭电4505
#include #include #include #include using namespace std;int main(){ int C,i,j,N,sum; int A; int flag[110]; int Max; scanf("%d",&C); while(C--) { scanf("%d",&N); sum=0; Max=0; mem原创 2016-04-09 22:33:11 · 244 阅读 · 0 评论 -
杭电5645
#include #include using namespace std;int main(){ int t,n,i,j; int a[310],num; scanf("%d",&t); while(t--) { num=0; scanf("%d",&n); for(i=1;i<=n;i++) scanf("%d",&a[i]); for(i=1;i<=n;原创 2016-04-20 13:59:09 · 249 阅读 · 0 评论 -
杭电5646
#include #include using namespace std;long long a[110000];int main(){ long long t; long long n,k,i,j,m; long long ans; scanf("%I64d",&t); while(t--) { scanf("%I64d%I64d",&n,&k); ans=1;原创 2016-04-20 14:39:37 · 241 阅读 · 0 评论 -
杭电1495
#include #include #include #include using namespace std;#define inf 1<<29int N,M,S;int Count;struct node{ int a,b,c; int step;};int Flag[110][110][110];void BFS(){ queuep; node xx,yy;原创 2016-05-17 14:20:51 · 337 阅读 · 0 评论 -
杭电2547
两点中点就是最合适的点#include #include #include using namespace std;int main(){ int t; double a,b,c,d,x,y,outCome; scanf("%d",&t); while(t--) { scanf("%lf %lf %lf %lf",&a,&b,&c,原创 2017-07-12 21:45:40 · 247 阅读 · 0 评论 -
杭电2171
#include #include #include using namespace std;string s,temp;string s1[1005];int main(){ int t,num,i,pos1,pos2,len,n,j; cin.sync_with_stdio(false); cin>>t; while(t--) { pos1=0; num=1;原创 2016-08-22 17:50:40 · 273 阅读 · 0 评论 -
杭电5585
不要读错题目了,不是乘方关系,是倍数关系,开始就是读错了#include #include #include using namespace std;int main(){ string s; int len,i,j,num; while(cin>>s) { num=0; len=s.size(); for(i=0;i<len;i++){ num+=s[i原创 2016-07-29 15:34:00 · 242 阅读 · 0 评论 -
杭电5620
#include #include #include using namespace std;#define Maxn 1000000000000000000int main(){ long long sum[300]; long long F[300]; long long num=3,pos=1,T,N,i,j; sum[0]=1; //sum[1]=3; F[0]=1原创 2016-07-29 15:31:27 · 272 阅读 · 0 评论 -
杭电1999
#include #include #include #define M 500010using namespace std;long long a[M];int flag[1100];int main(){ long long i,j,n,sum,T,N,temp; memset(flag,0,sizeof(flag)); temp=M/2; for(i=1;i<temp原创 2016-05-23 21:59:24 · 227 阅读 · 0 评论 -
杭电5690
#include #include using namespace std;#define LL long long LL temp[290];LL T,x,m,c,k;int main(){ scanf("%I64d",&T); LL sum; int i,j; int Case=1; int p1,p2; while(T--) { scanf("%I64d%I6原创 2016-05-22 22:21:29 · 233 阅读 · 0 评论 -
杭电5670
#include #include using namespace std;int main(){ int T,i; int m; string a; long long n,num; scanf("%d",&T); while(T--) { a=""; scanf("%d%I64d",&m,&n); i=m; while(i>=1) { nu原创 2016-05-07 22:51:45 · 230 阅读 · 0 评论 -
杭电1330
#include #include using namespace std;int main(){ int N; int i,flag=0; double sum; while(~scanf("%d",&N)) { sum=0; if(flag==0) { printf("# Cards Overhang\n"); flag=1; } for(i=1原创 2016-05-07 12:19:17 · 278 阅读 · 0 评论 -
杭电2401·
//一定要注意不要排除第N个箱子,当不少时,是第N个箱子中放了轻的硬币 #include #include using namespace std;int main(){ long long N,w,d,number; long long sum,num; while(~scanf("%I64d%I64d%I64d%I64d",&N,&w,&d,&number)) { sum原创 2016-05-06 22:33:05 · 279 阅读 · 0 评论 -
杭电5182
#include #include #include using namespace std;struct node{ int first; int second; int id;}stu[1000];bool cmp(node X,node Y){ if(X.first-X.second!=Y.first-Y.second) { return X.first-X.s原创 2016-05-17 17:25:55 · 307 阅读 · 0 评论 -
杭电4500
#include #include #include using namespace std;#define min -1000000int main(){ int N,M,i,j,sum,pos1,pos2,Max; int data[30][30]; while(~scanf("%d%d",&N,&M)&&(N||M)) { Max=min; for(i=0;i<N原创 2016-04-09 22:13:06 · 223 阅读 · 0 评论 -
杭电4509
#include #include #include #include using namespace std;int flag[24][60];int main(){ int n; int H,M,h,m,i,j,k,sum; while(~scanf("%d",&n)) { sum=0; memset(flag,0,sizeof(flag)); for(i=1原创 2016-04-09 21:47:25 · 208 阅读 · 0 评论 -
杭电4510
m2++和h2++比m1--和h1--后判断为负数简单。#include #include using namespace std;int main(){ int N; int i; int h1,h2,m1,m2,s1,s2; scanf("%d",&N); for(i=1;i<=N;i++) { scanf("%d:%d:%d",&h1,&m1,&s1); sc原创 2016-04-09 18:26:16 · 313 阅读 · 0 评论 -
杭电3952
直接用暴力扫描的做法,注意叉乘可以用来判断两直线是否相交。如果线段P1P2和直线Q1Q2相交,则线段P1P2跨立直线Q1Q2,即:( P1 - Q1 ) × ( Q2 - Q1 ) * ( Q2 - Q1 ) × ( P2 - Q1 ) >= 0。#include #include using namespace std;struct node{ int k; in原创 2016-04-03 20:52:18 · 227 阅读 · 0 评论 -
杭电1007分治法
#include #include #include #include using namespace std;typedef struct { double x; double y;}Node;Node stu[100010];Node personx[100010];Node persony[100010];bool cmp(Node X,Node Y){ ret原创 2016-03-09 21:52:44 · 447 阅读 · 0 评论 -
杭电1235
#include #include #include using namespace std;int a[1010];int main(){ int N,i,j,m,sum; while(~scanf("%d",&N)&&N) { sum=0; for(i=1;i<=N;i++) scanf("%d",&a[i]); scanf("%d",&m); for(i原创 2016-04-01 21:50:47 · 258 阅读 · 0 评论 -
杭电1008
#include #include using namespace std;int main(){ int N,i,sum,a,b; while(scanf("%d",&N)&&N) { sum=0; scanf("%d",&a); sum+=5+a*6; for(i=1;i<=N-1;i++) { scanf("%d",&b); if(a<=b)原创 2016-04-01 20:50:23 · 426 阅读 · 0 评论 -
杭电3188
#include int main(){ int t; int a,b,c; scanf("%d",&t); while(t--) { scanf("%d%d%d",&a,&b,&c); if(a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a) printf("good\n"原创 2016-03-08 21:49:29 · 314 阅读 · 0 评论 -
杭电4209
#include int main(){ int N,i; double D,P,sum; double min; int n,Case=0; while(~scanf("%d",&N)&&N) { min=100000; for(i=1;i<=N;i++) { scanf(原创 2016-03-08 21:48:24 · 330 阅读 · 0 评论 -
杭电4530
#include int main(){ int T,x,Q,t,k; int i; scanf("%d",&T); while(T--) { scanf("%d",&x); scanf("%d",&Q); while(Q--) { scanf("%d%d",&t,&原创 2016-03-08 21:47:08 · 210 阅读 · 0 评论 -
杭电5053
#include int main(){ long long sum; int T,Case=0; long long i; long long A,B; scanf("%d",&T); while(T--) { sum=0; scanf("%I64d%I64d",&A,&B); for(i原创 2016-03-08 21:45:12 · 247 阅读 · 0 评论 -
杭电1032
千万注意没说n#include #include using namespace std;int main(){ long long n,m,i,j,temp; long long Max,num; while(~scanf("%I64d%I64d",&n,&m)) { Max=0; cout<<n<<" "<<m<<" "; //先输出 if(n>m) //此时要交原创 2016-03-30 20:49:40 · 607 阅读 · 0 评论 -
杭电4546
/*思路就是利用优先队列,对于任意一个数可以选择,也可以跳过它,直接选择下一个*/ #include #include #include #include #include using namespace std;struct Node{ int num; int nextnum; int id; friend bool operator<(Node x,Node y){原创 2016-03-30 20:10:49 · 292 阅读 · 0 评论 -
杭电2700
#include #include using namespace std;int main(){ string s1; int sum; while(cin>>s1&&s1!="#") { sum=0; for(int i=0;i<s1.length();i++) { if(s1[i]=='1')sum++; } if(s1[s1.length()-1]原创 2016-04-03 20:53:34 · 251 阅读 · 0 评论 -
杭电2567
#include #include using namespace std;int main(){ int T; string s1,s2; scanf("%d",&T); while(T--) { cin>>s1>>s2; s1.insert(s1.length()/2,s2); cout<<s1<<endl; }return 0;}原创 2016-04-03 20:54:16 · 315 阅读 · 0 评论 -
杭电2398
#include #include using namespace std;int main(){ double bal,rate,amount; int sum; while(~scanf("%lf%lf%lf",&bal,&rate,&amount)) { sum=0; while(bal<amount) { bal*=(1+rate/100); sum原创 2016-04-03 20:54:55 · 269 阅读 · 0 评论