本文主要是介绍系统性训练,励志刷完挑战程序设计竞赛-代码整理1~42【初级篇】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1~10 2014年9月1日 看来以后用cpp比java要舒服的多~话说第一次这么长的写cpp。还是比较喜欢的,看来语言是工具一点也不假。虽然很多题目以前打过了数遍,还是多实践,细节方面更加优美,话说编程艺术之美系列的文章也在同步看,感觉不错~应该是三个月没有碰代码以至于自己很多写过的题都打不出来。囧。共勉吧
/*区间问题,贪心策略:结束的越早,可选的工作就越多。 5
1 3
2 5
4 7
6 9
8 103
*/
#include<iostream>
using namespace std;
const int MAXN=1<<7;
int n,s[MAXN],t[MAXN];
pair<int,int> st[MAXN];void input(){scanf("%d",&n);int i=0;while(i<n){scanf("%d %d",&s[i],&t[i]);i++; }
}
void sovle(){for(int i=0;i<n;i++){st[i].first=t[i];st[i].second=s[i];}sort(st,st+n);int ans=0;int t=0;//结束的时间 for(int i=0;i<n;i++){if(t<st[i].second){ans++;t=st[i].first;}} printf("%d\n",ans);}int main(){input();sovle(); return 0;
}
/*
CN已经排序,从小到大
依序枚举 注意是否够=min(A/CN[i],C[i]),尼玛solve1自己写的太坑了,冗余性大 3 2 1 3 0 2 620
6
*/#include<iostream>
using namespace std;
const int MAXN=1<<4;
int C[MAXN],A=0,n;
int CN[6]={1,5,10,50,100,500};
void input(){int i=0;char ln;while(1){scanf("%d",&C[i++]);scanf("%c",&ln);if(ln=='\n') break;}i--;A=C[i];n=i;
}
void sovle1(){int cnt=0,j=0;for(int i=n-1;i>=0;i--){if(CN[i]<=A){j=A/CN[i];if(j>C[i])j=C[i];A-=(j*CN[i]);cnt+=j;//printf("%d %d\n",A,CN[i]); }if(A==0){printf("%d\n",cnt);break;} }
}
void sovle2(){int ans=0,j;for(int i=n-1;i>=0;i--){ans+=(j=min(A/CN[i],C[i])); A-=j*CN[i];}printf("%d\n",ans);
}
int main(){input();//sovle1(); sovle2();
}
这篇关于系统性训练,励志刷完挑战程序设计竞赛-代码整理1~42【初级篇】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!