2012年7月30日
摘要: 开始题目看错了,以为是求老朋友的个数,后来发现题目要求求新朋友的个数。筛选法。。。CODE:#include<stdio.h>#include<stdlib.h>#include<math.h>#include<string.h>usingnamespacestd;constintmaxn=32769;intvis[maxn]={0};intN,cnt;voidinit(intn,int&cnt){inti,j;cnt=0;memset(vis,0,sizeof(vis));for(i=2;i<n;i++)if(!vis[i]){i 阅读全文
posted @ 2012-07-30 15:54 有间博客 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 简单DFS。CODE:#include<stdio.h>#include<stdlib.h>#include<string.h>usingnamespacestd;intx,y;inttot;intn,m;charmaze[21][21];voiddfs(intx,inty,int&tot){if(x>=0&&y>=0&&x<n&&y<m&&maze[x][y]=='.'||maze[x][y]=='@'){tot++;maze[x 阅读全文
posted @ 2012-07-30 12:07 有间博客 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 简单模拟。注意数组别越界!CODE:#include<stdio.h>#include<stdlib.h>#include<string.h>usingnamespacestd;constintmaxn=65534;__int64prime[maxn];__int64save[maxn];intvis[maxn]={0};intcnt=0;voidinit(){__int64i,j;for(i=2;i<maxn;i++)if(!vis[i]){prime[cnt++]=i;for(j=i*i;j<maxn;j+=i)vis[j]=1;}retur 阅读全文
posted @ 2012-07-30 11:45 有间博客 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 贪心算法。贪心策略:假设田忌的马为A,齐威王的马为B。要使价值最大化的话,则有如下几种情况:1、使A中速度最次的马与B中速度最好的马比赛,使得B的价值损失最大。2、使A中速度最好的马与B中速度最好的马比赛,使得B中价值损失最大。3、如果A中速度最次的马与B中速度最次的马速度相等,则比较A中速度最大的马与B中速度最大的马的速度,有如下情况:(1)若大于,根据2知须A中速度最大的马与B中速度最大的马比赛。(2)若小于,则根据1知须A中最次的马与B中最好的马比赛。接下来根据上面的贪心策略就得到了具体的方案:1、A最快 > B最快:即A的最快能打败B的所有队员,为了后面着想,必然跟B的最快比。2 阅读全文
posted @ 2012-07-30 10:51 有间博客 阅读(218) 评论(0) 推荐(0) 编辑