摘要: 题意分析: 英文太长了,好长时间都没看懂;先大体说一下题意,股票经纪人要在一群人中散布一个传言,要求时间最短。输入要求: 多行输入; 被传播的股票经纪人的个数n,下面依次第一1->n行递增 n行的每个开头是m组关系:先认识的人,后是传播所需时间输出要求: 从哪个人开始传播; 最短需时算法分析:经典的Floyd算法,三层循环;代码:#include<stdio.h>#define N 999999int grah[101][101];int n,m;void floyd(){ int i,j,k; for(... 阅读全文
posted @ 2011-08-16 22:11 skyming 阅读(261) 评论(0) 推荐(0) 编辑
摘要: 我要我的生活 在天空下畅想在大地上奔跑 追随自己的思想拼搏出 属于自己的一片天地 8.16/skyming 阅读全文
posted @ 2011-08-16 18:51 skyming 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 题目分析: 这个题属于典型的dijkstra 算法的题; n个村庄,m 条路 和两村庄之间所用时间 最后是各个城市所属阵营;题意分析: 分为两个阵营,1,2城市分别属于1,2阵营(题意简单化题目)求从城市1到城市2 的最短时间重点: 可以从城市1到2,反则不行:因此,在这加上判断条件,套用dijkstra算法就ok了#include<stdio.h>#define max 0x7fffffffint grah[601][601];int root[601];int n;void dij(){ int d[601]; bool vis... 阅读全文
posted @ 2011-08-16 17:26 skyming 阅读(352) 评论(0) 推荐(0) 编辑
摘要: 题目分析:重点:要摧毁第N个井,而不是n个井,在这我纠结了好长时间思路:可以从1->n也可以N->1选出最小的就ok了技巧:不能暴力求最小值,会超时;巧用break;#include<stdio.h>int l[100001];int r[100001];int sum[100001];int main(){ //freopen("e:1.txt","r",stdin); int n,T,t=0; scanf("%d",&T); while(T--) { int i,max; scanf("% 阅读全文
posted @ 2011-08-15 17:47 skyming 阅读(280) 评论(0) 推荐(0) 编辑
摘要: #include<stdio.h> #include<string.h> int main() { int i,j,len1,len2; char str[100],st[100]; int sum[100][100]; //freopen("e://2.txt","r",stdin); while(scanf("%s %s",str,st)!=EOF) { memset(sum,0,sizeof(sum)); len1=strlen(str); len2=strlen(st); for(i=0;i<=l 阅读全文
posted @ 2011-08-06 15:51 skyming 阅读(112) 评论(0) 推荐(0) 编辑
摘要: #include<stdio.h> int str[1001],sum[1001]; int main() { int n,i,max; //freopen("e://2.txt","r",stdin); while(scanf("%d",&n)!=EOF&&n) { scanf("%d",&str[0]); sum[0]=str[0]; for(i=1;i<n;i++) { scanf("%d",str+i); max=0; for(int j 阅读全文
posted @ 2011-08-06 15:49 skyming 阅读(176) 评论(0) 推荐(0) 编辑
摘要: #include<stdio.h> int main() { int n,i,j; //freopen("e://2.txt","r",stdin); int a[4]={0},b[4]={2,3,5,7}; int str[6000]; for(i=1;i<5842;i++) { int t=0; str[0]=1; for(j=1;j<4;j++) { if(str[a[j]]*b[j]<str[a[t]]*b[t]) t=j; } str[i]=str[a[t]]*b[t]; for(j=0;j<4;j++) { 阅读全文
posted @ 2011-08-06 15:47 skyming 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 氺题,不多说代码如下 #include<stdio.h> #include<string.h> #define N 100005 int str[N]; int p[N]; int main() { int n,m; // freopen("e://2.txt","r",stdin); scanf("%d",&m); int i,j,l=1; while(l<=m) { memset(p,0,sizeof(p)); if(l!=1) printf("\n"); scanf(&q 阅读全文
posted @ 2011-08-06 15:46 skyming 阅读(142) 评论(0) 推荐(0) 编辑
摘要: #include<stdio.h> #include<string.h> #define N 2001 int grah[N][N]; int sum; void prim(int n) { int i,j,pos; int min,v[2001]={0},d[2001]; for(i=0;i<n;i++) d[i]=grah[0][i]; v[0]=1; for(i=1;i<n;i++) { min=99999999; for(j=0;j<n;j++) { if(!v[j]&&min>d[j]) {min=d[j];pos=j; 阅读全文
posted @ 2011-07-30 21:57 skyming 阅读(149) 评论(0) 推荐(0) 编辑