题目 397 [USACO Oct09] 热浪
2016-01-18 15:26:43
|
|
题目 21 [HAOI 2005]希望小学
2016-01-18 14:56:45
|
|
注意999999*999999的时候int会溢出,调了好久。。。
|
|
只有“本来就连通的其他城市”才能成为通讯被切断的其他城市。。。再开一个并查集记录所有道路均连通的情况即可。题目描述确实是不清楚。
|
|
终于弄懂莫比乌斯了
|
|
居然把邻接表打错了。
|
|
虽然stdio和iostream都是0.02s。。。
题目 1809 [NOIP 2014PJ]珠心算测试
2016-01-17 17:19:08
|
|
Openjudge上没事,这边卡= =;
求助 |
|
吓死我了,随便交了个辣鸡算法,这就上榜了= =
算法辣鸡就算了,可是我用的iostream。。。 |
|
回复 @智霞Forever :
#include<iostream> #include<cstdlib> #include<queue> #include<cstdio> #include<ctime> #include<cstdio> #include<cstring> const int maxn=110; int m,n,len=0,head[maxn],dis[maxn][maxn]; const int maxe=maxn*maxn; using namespace std; struct node { int num,dis; node(){}; node(int a,int b) { num=a,dis=b; } bool operator < (const node&a)const { return dis>a.dis; } }; struct Edge { int dis,to,next; }e[maxe]; void Dijs(int); void Init(); void Insert(int,int,int); int main() { Init(); Dijs(0); //while(1); return 0; } void Init() { memset(head,-1,sizeof(head)); memset(dis,0,sizeof(dis)); memset(e,0,sizeof(e)); cin>>n>>m; for(int i=1;i<=m;i++) { int x,y,z; cin>>x>>y>>z; Insert(x,y,z); Insert(y,x,z); } } void Insert(int x,int y,int z) { len++; e[len].to=y; e[len].dis=z; e[len].next=head[x]; head[x]=len; } void Dijs(int x) { int d[maxn]; memset(d,0x7f,sizeof(d)); bool f[maxn]={0}; priority_queue<node> q; d[x]=0; q.push(node(x,d[x])); while(!q.empty()) { node temp=q.top();q.pop(); int k=temp.num; f[k]=1; for(int i=head[k];i!=-1;i=e[i].next) { int j=e[i].to; if(!f[j]&&d[j]>d[k]+e[i].dis) { d[j]=d[k]+e[i].dis; q.push(node(j,d[j])); } } } for(int i=0;i<n;i++) { dis[x][i]=d[i]; } } |
|
回复 @智霞Forever :
#include<iostream> #include<cstdlib> #include<queue> #include<cstdio> #include<ctime> #include<cstdio> #include<cstring> const int maxn=110; int m,n,len=0,head[maxn],dis[maxn][maxn]; const int maxe=maxn*maxn; using namespace std; struct node { int num,dis; node(){}; node(int a,int b) { num=a,dis=b; } bool operator < (const node&a)const { return dis>a.dis; } }; struct Edge { int dis,to,next; }e[maxe]; void Dijs(int); void Init(); void Insert(int,int,int); int main() { Init(); Dijs(0); //while(1); return 0; } void Init() { memset(head,-1,sizeof(head)); memset(dis,0,sizeof(dis)); memset(e,0,sizeof(e)); cin>>n>>m; for(int i=1;i<=m;i++) { int x,y,z; cin>>x>>y>>z; Insert(x,y,z); Insert(y,x,z); } } void Insert(int x,int y,int z) { len++; e[len].to=y; e[len].dis=z; e[len].next=head[x]; head[x]=len; } void Dijs(int x) { int d[maxn]; memset(d,0x7f,sizeof(d)); bool f[maxn]={0}; priority_queue<node> q; d[x]=0; q.push(node(x,d[x])); while(!q.empty()) { node temp=q.top();q.pop(); int k=temp.num; f[k]=1; for(int i=head[k];i!=-1;i=e[i].next) { int j=e[i].to; if(!f[j]&&d[j]>d[k]+e[i].dis) { d[j]=d[k]+e[i].dis; q.push(node(j,d[j])); } } } for(int i=0;i<n;i++) { dis[x][i]=d[i]; } }
题目 397 [USACO Oct09] 热浪
2016-01-17 17:13:11
|
|
都没有人发现样例输入、输出写反了吗???
题目 176 [USACO Feb07] 奶牛聚会
2016-01-17 16:54:10
|
|
为啥自己测样例就对了,提上去就错= =
|
|
。。。把“热浪”加了几行代码就过了。。。
题目 188 [USACO Oct08] 被破坏的电力系统
2016-01-17 16:36:58
|
|
水
题目 159 [USACO Oct07] 完全平方数
2016-01-17 15:58:32
|
|
题目 637 排序测试
2016-01-17 15:41:35
|
|
@zys 太神辣
题目 249 [POI 2000] 最长公共子串
2016-01-17 11:46:26
|
|
看不懂英文,智商压制= =
页面 8 [COGS] 个性头像
2016-01-16 21:34:38
|
|
|
|
题目 468 [NOI 2010]超级钢琴
2016-01-16 18:26:26
|