2014年暑假集训
文章平均质量分 53
_夜风
我好懒怎么办
展开
-
hdu 2105
#include #include using namespace std;int main(){ double a,b,c,d,e,f,t; while(cin>>t){ if(t==0) break; else { while(t--) { cin>>a>>b>>c>>d>>e>>f原创 2014-12-11 17:45:29 · 445 阅读 · 0 评论 -
题目忘了
#include #include #include using namespace std;int cmp(int a,int b){ return a>b;}int main(){ int i,t,a[10010]; cin>>t; for(i=0;i<t;i++) cin>>a[i]; sor原创 2014-12-11 17:41:24 · 381 阅读 · 0 评论 -
poj 1595
#include #define N 10010using namespace std;int a[N],b[N];int prime(int a){ int i; for(i=2;i*i<=a;i++) if(a%i==0) return 1; return 0;}int main(){原创 2014-12-11 17:40:16 · 534 阅读 · 0 评论 -
题目忘了
#include #include #include #define LL __int64using namespace std;bool ss(LL a){ LL i; for(i=2;i*i<=a;i++) { if(a%i==0) return true; } return原创 2014-12-11 17:40:08 · 368 阅读 · 0 评论 -
题目忘了..
#include using namespace std;int prime(int a){ int i; for(i=2;i*i<=a;i++) if(a%i==0) return 1; return 0;}int main(){ int i,m,n,p,q,t; while(cin>>原创 2014-12-11 17:38:33 · 422 阅读 · 0 评论 -
hdu 2544
#include #include #define INF 9999999//#define INF 0x3f3f3f3using namespace std;int vis[200],dis[200],Map[200][200];int dijkstra(int n,int x){ int i,j,p,Min; for(i=1;i<=n;i++)原创 2014-12-11 17:36:06 · 387 阅读 · 0 评论 -
hdu 1232
以前写的.....拿出来看看.... 并查集模板:#include #include using namespace std;int f[10000];int find(int x){ if(f[x]==0) return x; return f[x]=find(f[x]);}int bing(int a,int b){ i原创 2014-12-10 22:56:13 · 504 阅读 · 0 评论 -
hdu 1175
#include #include #include using namespace std;int Map[1001][1001],vis[1001][1001];int stx,sty,enx,eny,n,m,flag;int xx,yy,turn,k,i,j;int dx[]={1,0,-1,0},dy[]={0,1,0,-1};//两个数组表示四个方向原创 2014-12-11 15:08:33 · 617 阅读 · 0 评论 -
hdu 1728
//hdu 1728//这个是一道很经典的迷宫题了,思路感觉。。。取起点和终点,判断连线是否超过n个弯,//先是从起点出发,上下左右四个方向搜索,找到一条路,把那条路的第一个点压入队列//然后沿着那个方向一直搜下去,直到不符合条件(4个方向都动不了),就从队列里面去首元素//然后不断循环这个操作。。。。 #include #include #include原创 2014-12-11 12:39:34 · 467 阅读 · 0 评论 -
N!水题
//题目是求N!的问题,思路:设定一个整形数组来存放每次计算过后的值有两个for循环,第一个for循环每次加进一个数然后在第二个for循环里面计算出此时的阶乘,比如9999,先给出i=2在第二个for循环里面计算出2的阶乘,保存在数组里,然后i=3,在计算3的阶乘,后面以此类推。。。#include#include #include#include#define N原创 2014-12-11 12:38:24 · 441 阅读 · 0 评论 -
hdu 2200
题意: 中文自看 大概就是n个人选m个人,然后插板,求有多少种?插板首先排除头尾,一共有m-1个空,在m-1空里面插入,插入后另外一个就确定了,然后求组合数C(i,n) 水题AC代码:#include #define LL long longusing namespace std;LL ss(LL n,LL m){ LL s=1,i;原创 2014-12-10 14:01:58 · 540 阅读 · 0 评论 -
nyoj 42
#include #include #include #include using namespace std;int f[1000];int digree[1000];int find(int x){ while(x!=f[x]) x=find(f[x]); return x;}void bing(int a,int b){原创 2014-12-11 17:27:38 · 462 阅读 · 0 评论 -
hdu 2689
hdu 2689超级大水题。。。。两种代码都过了,开始以为n^2会tle,后来竟然过了。。。汗注意下cin写在while里面,就可以了 #include using namespace std;int main(){ int n,i,j,a[1010]; while(cin>>n) { for(i=1; i<=n;原创 2014-12-11 13:07:05 · 369 阅读 · 0 评论 -
简单二叉树
//这两道题的代码是关于二叉树的。。。题意:给一个树的深度和小球个数,这棵树按从上到小,左到右依次编好号。。每次小球从根节点下落,相应的根节点状态改变,如果为闭合状态,则小球向左下落,如果是开启状态,那么小球向右下落,求最后一个小球的落得节点序号。。。。这道题目说明的树节点存在父节点为k,那么子节点为2*k,2*k+1的序号。。。所以第一种代码,前面先用一个大数组存放,[1而第二种方法就是原创 2014-12-11 13:03:06 · 376 阅读 · 0 评论 -
单调最长递增子序列
// 再一次复习 最长单调递增子序列dp求法// 以前有过一次专门的总结,现在有点忘了,拿出来看看// 目前为止,我做过的这类题目就1.最长子序列和 2.字母和数字单调最长序列。。。后面继续总结 #include #include #include #include using namespace std;int main(){ char原创 2014-12-11 12:46:59 · 374 阅读 · 0 评论 -
hdu 1003
这个是暴力枚举求解的//hdu1003 这一题的代码我也不愿意整理了,乱就乱吧这一道题已经写了至少五遍了,也没什么好说的了,核心代码就是第二个for那里自己在纸上写写就清楚了,后面一个for找最大,然后依据这个最大的可以推出是从哪里开始的,根据就是每次往回加一个然后判断和是否等于最大的,在纸上写写就清楚了。。。。 #include #include u原创 2014-12-11 14:38:00 · 515 阅读 · 0 评论 -
今年暑假不AC
#include #include using namespace std;struct p{ int endd,start;};p p1[1000];bool cmp(p p1,p p2){ return p1.endd<p2.endd;}int main(){ int i,m,k,t; while(cin>>t原创 2014-12-11 13:15:01 · 441 阅读 · 0 评论 -
简单水池&&迷宫问题
#include #include #include using namespace std;int M[101][101],flag[101][101];int n,m;int cnt;void pool(int x,int y){ flag[x][y]=1; M[x][y]=cnt; if(x-1>=1&&M[x-1][y]!=0&原创 2014-12-11 15:05:27 · 370 阅读 · 0 评论 -
一道找朋友的问题
以前写的.....贴出来,题目意思大概是找a,b两个人是否有关系... #include #include using namespace std;bool Find;int n,m,flag[30],M[30][30];void ss(int x,int y){ flag[x]=1; for(int i=0;i<=26;i++)原创 2014-12-10 22:53:26 · 641 阅读 · 0 评论 -
nyoj 214
//nyoj 214这个题目和字符串的问题类似,都是给出一组数据,寻找最长的单调递增字符这一题一开始我用dp做,发现超时,看了下时间,n*n的复杂度,换过一种思路用类似于栈的方式,来存储每次更新过后的单调序列,里面二分查找很容易理解就是数组作用开始比较难理解,大致思路是先把输入数组的第一个元素放入Stack数组里然后一个for,从第二个元素开始,if每次判断和top顶元素大小,原创 2014-12-11 14:38:53 · 529 阅读 · 0 评论 -
母函数&&排列(模板)
#include #include using namespace std;int main(){ int n,i; int a[4]={1,2,3,4}; //cin>>n; while(next_permutation(a,a+4)){ for(i=0;i<4;i++) cout<<a[i]<<" ";原创 2014-12-11 15:04:01 · 308 阅读 · 0 评论 -
hdu 2191
#include #include using namespace std;struct race{ double p,h,c,flag;};race r[101];bool cmp(race a,race b){ //if() return a.flag<b.flag;}int main(){ int i,t,m原创 2014-12-11 17:51:50 · 519 阅读 · 0 评论 -
hdu 2104
#include using namespace std;int gcd(int a,int b){ return (b?gcd(b,a%b):a);}int main(){ int m,n; while(cin>>m>>n&&m+n!=-2) { if(gcd(m,n)==1) cout<<"YES\n";原创 2014-12-12 18:05:54 · 551 阅读 · 0 评论 -
hdu 2186
#include using namespace std;int main(){ int a,b,c,k1,k2,k3,m,n; cin>>m; while(m--){ k1=1;k2=1;k3=1; cin>>n; a=n/2;b=(n-a)*2/3;c=n-a-b; while(a/=10) k1原创 2014-12-12 18:01:34 · 394 阅读 · 0 评论 -
一道电梯的问题
#include #include using namespace std;int main(){ int i,c,n,a[101]; cin>>c; while(c--) { cin>>n; int k=0,flag=0; for(i=0;i<n;i++) ci原创 2014-12-12 17:55:45 · 425 阅读 · 0 评论 -
hdu 2037
#include #include using namespace std;struct p{ int endd,start;};p p1[1000];bool cmp(p p1,p p2){ return p1.endd<p2.endd;}int main(){ int i,m,k,t; while(cin>>t原创 2014-12-11 17:50:01 · 406 阅读 · 0 评论 -
hdu 2156
#include #include using namespace std;int main(){ int i,n; while(cin>>n&&n) { double sum=0; sum+=n*1.00; for(i=2;i<=n;i++) sum+=1.00/i*(n-i+1)*2; printf("%.2lf\n",sum);原创 2014-12-12 18:07:34 · 546 阅读 · 0 评论 -
nyoj 76
#include using namespace std;int main(){ int i,t,n; int a[101]; cin>>t; while(t--) { cin>>n; if(n==1) cout<<"0"<<endl; else{ a[2]=1;原创 2014-12-11 17:44:42 · 443 阅读 · 0 评论 -
排序的小结
选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法,冒泡排序、插入排序、归并排序和基数排序是稳定的排序算法。 冒泡法: 这是最原始,也是众所周知的最慢的算法了。他的名字的由来因为它的工作看来象是冒泡: 复杂度为O(n*n)。当数据为正序,将不会有交换。复杂度为O(0)。直接插入排序:O(n*n)选择排序:O(n*n)快速排序:平均时间复杂度log2(n)*n,所转载 2014-12-11 17:48:17 · 343 阅读 · 0 评论 -
hdu 2123
#include using namespace std;int main(){ int i,t,n,j,k,f; cin>>t; while(t--) { cin>>n; for(i=1,j=1;i<=n;cout<<endl,i++,j++) { //i=1;原创 2014-12-12 18:04:21 · 381 阅读 · 0 评论 -
nyoj 2
#include #include #include #include using namespace std;char a[10001];int main(){ int i,t,flag,n; cin>>t; getchar(); stack s; while(t--) { cin.getl原创 2014-12-11 17:37:25 · 377 阅读 · 0 评论 -
hdu 2544
#include #include using namespace std;const int INF=0x3f3f3f3f;int dis[110][110];int main(){ int i,j,k,n,m,p,q,s; while(scanf("%d%d",&n,&m)!=EOF,n+m) { for (i=1;i<=原创 2014-12-11 17:34:32 · 342 阅读 · 0 评论 -
nyoj 623
#include using namespace std;int main(){ int a[51][51],b[51][51],c[51][51],i,j,k,l,m,n; while(cin>>m>>n>>k,m+n+k>0) { for(i=1;i<=m;i++) for(j=1;j<=n;j++)原创 2014-12-11 15:03:39 · 366 阅读 · 0 评论 -
nyoj 17
// nyoj 17 代码如上,用的是dp,总的来说就是对一个字符串从末尾开始比较,设定一个数组,存放每个单调字串的最大长度,最后比较。。。//要注意的就是里面if语句对于每次字符比较后,更新数组,自己在纸上画画就清楚了。。。 #include #include using namespace std;int main(){ int i,原创 2014-12-11 14:37:30 · 411 阅读 · 0 评论 -
hdu 1869
#include using namespace std;int M[101][101];int main(){ int i,j,m,n,a,b,k; int flag; while(cin>>n>>m){ //flag=1; for(i=0;i<n;i++) for(j=0;j<n;j++)原创 2014-12-11 17:34:09 · 507 阅读 · 0 评论 -
hdu 2106
#include #include #include using namespace std;int main(){ int sum,m,len,t,i,k,s; char a[1001]; while(cin>>t) { sum=0; while(t--) { cin>>a原创 2014-12-11 17:30:30 · 383 阅读 · 0 评论 -
hdu 2111
#include #include using namespace std;struct money{ int s; int v;};bool cmp(money a,money b){ return a.s>b.s;}int main(){ money M[101]; int n,m,i; while(cin>>n&&n) {原创 2014-12-11 17:28:54 · 435 阅读 · 0 评论 -
hdu 1022
// hdu1022这题算是我做的第一道栈的题目,之前看过栈的一些内容,做这道题的时候,可以模拟出过程,但是具体的代码不会写。。。所以决定练习一些栈和队列的问题,大概思路就是有三个数组和一个栈,先把第一个数组的第一个元素放进栈里,每次判断第二个数组和栈顶元素是否相等,如果相等就弹出,如果不相等就压入,大概就是这个思路。。。。 #include #include using原创 2014-12-11 13:08:31 · 557 阅读 · 0 评论 -
hdu 2212
题意:给一个数n,求1!+....+n!是否等于n水题 AC代码:#include using namespace std;int ss(int m){ int s=1; for(;m>0;m--) s*=m; return s;}int main(){ int i,m,sum; for(i原创 2014-12-06 10:55:25 · 454 阅读 · 0 评论 -
hdu 2187
#include using namespace std;struct race{ int p; int w;};race r[1010];int cmp(race &x,race &y){ return x.p<y.p;}int main(){ int i,j,m,n,t; cin>>t; w原创 2014-12-11 13:15:52 · 767 阅读 · 0 评论