ACM-9月14日周四周中训练心得
来源:互联网 发布:一维数组杨辉三角java 编辑:程序博客网 时间:2024/05/16 15:24
这周开始的时候,我们队的队长给我们发了上周末的乌鲁木齐网络赛的题解,终于能看到题解了,那个变态的网站一开始居然连题目都看不了,不过后来可以看了,仔细看了看上周末没做出来的skiing,题目大概的意思是给出好几个点之间的距离,然后找到其中最长的一条连通路,并输出其长度。看到网上的一些题解用的是邻接表,这个知识我还不会,问了一下其他组是怎么做的,发现用了弗洛伊德算法居然没有超时。
#include<iostream>#include<cstring>#include<iomanip>#include<algorithm>#include<stdio.h>using namespace std;long long T,m,n;long long look[10005],f[10005],aa[100005];struct mou{ int x,y,l;}c[100005];bool cmp(mou cc,mou v){ //if(cc.x==v.x) return cc.y<v.y; return cc.x<v.x;}int main(){int i,x,y,l; long long S; scanf("%lld",&T); for(long long zz=1;zz<=T;zz++) { memset(f,0,sizeof(f)); memset(look,0,sizeof(look)); S=0; scanf("%lld%lld",&m,&n); for(i=0;i<n;i++) { scanf("%d%d%d",&c[i].x,&c[i].y,&c[i].l); look[c[i].y]++; } sort(c,c+n,cmp); while(1) { int z=-1,vv=0; for(i=0;i<n;i++) { //cout<<c[i].x<<" "<<look[c[i].x]<<endl; if(look[c[i].x]==0) { if(f[c[i].y]<f[c[i].x]+c[i].l) f[c[i].y]=f[c[i].x]+c[i].l; look[c[i].y]--; aa[vv++]=c[i].x; if(S<f[c[i].y]) S=f[c[i].y]; z=1; } } if(z==-1) break; for(int mm=0;mm<vv;mm++) {look[aa[mm]]--; } } cout<<S<<endl; }}还看了一下线段树里的离散化,就是先读入所有区间,然后把区间端点离散化到map中,然后求出所有新的区间(范围变小了),然后再一次set线段树操作,最后求出线段树中一共有多少种不同的值即可。
阅读全文
0 0
- ACM-9月14日周四周中训练心得
- ACM-9月7日周四周中训练心得
- ACM-9月21日周四周中训练心得
- ACM-9月28日周四周中训练心得
- ACM-11月9日周四周中训练心得
- ACM-10月19日周四周中训练心得
- ACM-11月2日周四周中训练心得
- ACM-11月16日周四周中训练心得
- ACM-11月23日周四周中训练心得
- ACM-11月30日周四周中训练心得
- ACM-12月7日周四周中训练心得
- ACM-8月31号周四周中训练心得
- ACM-10月26驲周四周中训练心得
- ACM-10月12日周四周中训练日记
- 9月7日周四训练笔记
- 9月21日周四训练笔记
- 9月28日周四训练笔记
- ACM-9月3日周日周末训练心得
- PHP mysqli 数据库连接,查询
- Java使用Quartz配置定时任务
- jboss marshell序列化整合netty
- 反序列化(先序)
- MaxConsecutiveOnes
- ACM-9月14日周四周中训练心得
- 189. Rotate Array
- AI与游戏——吃豆人(2)控制器简介
- Windows服务已标记为删除
- Codeforces 742B Arpa’s obvious problem and Mehrdad’s terrible solution
- hadoop 一些属性值含义
- TCP套接字--阻塞模式和粘包问题
- html和CSS基础学习(七)
- bzoj 5017 炸弹 线段树优化建图+tarjan+拓扑排序