杭电ACM-LCY算法进阶培训班-专题训练(03-07-11-15)

1012 最短路

#pragma GCC optimize(2)
#pragma GCC optimize(3,"Ofast","inline")
#include <bits/stdc++.h>
#define inf 0x7fffffff
//#define ll long long
#define int long long
//#define double long double
#define re register int
#define void inline void
#define eps 1e-8
//#define mod 1e9+7
#define ls(p) p<<1
#define rs(p) p<<1|1
#define pi acos(-1.0)
#define pb push_back
#define P pair < int , int >
#define mk make_pair
using namespace std;
const int mod=1e9+7;
const int M=1e8+5;
const int N=2e6+5;//?????????? 4e8
struct node{int ver,edge,next;}e[N];
int n,m,tot,head[N],d[N],v[N];
void add(int x,int y,int z){e[++tot].ver=y;e[tot].edge=z;e[tot].next=head[x];head[x]=tot;}
void addedge(int x,int y,int z){add(x,y,z);add(y,x,z);}
void init()
{tot=1;for(re i=0;i<=n+1;i++)  head[i]=v[i]=0,d[i]=1e18;d[1]=0;
}
void dijkstra()
{priority_queue < pair < int , int > > q;q.push(mk(0,1));while(q.size()){int x=q.top().second;q.pop();if(v[x])  continue;v[x]=1;for(re i=head[x];i;i=e[i].next){int y=e[i].ver;int z=e[i].edge;if(d[y]>d[x]+z)  d[y]=d[x]+z,q.push(mk(-d[y],y));}}
}
void solve()
{while(cin>>n>>m&&(n+m)){init();for(re i=1;i<=m;i++){int x,y,z;scanf("%lld%lld%lld",&x,&y,&z);addedge(x,y,z);}dijkstra();cout<<d[n]<<endl;}
}
signed main()
{int T=1;
//    cin>>T;for(int index=1;index<=T;index++){//        printf("Case #%d: ",index);solve();
//        puts("");}return 0;
}
/*
4
1 2 3 4*/

1013 六度分离

#pragma GCC optimize(2)
#pragma GCC optimize(3,"Ofast","inline")
#include <bits/stdc++.h>
#define inf 0x7fffffff
//#define ll long long
#define int long long
//#define double long double
#define re register int
#define void inline void
#define eps 1e-8
//#define mod 1e9+7
#define ls(p) p<<1
#define rs(p) p<<1|1
#define pi acos(-1.0)
#define pb push_back
#define P pair < int , int >
#define mk make_pair
using namespace std;
const int mod=1e9+7;
const int M=1e8+5;
const int N=2e6+5;//?????????? 4e8
int d[1005][1005],n,m;
void solve()
{while(cin>>n>>m){int op=0;for(re i=1;i<=n;i++)  for(re j=1;j<=n;j++)  d[i][j]=1e18;for(re i=1;i<=n;i++)  d[i][i]=0;for(re i=1;i<=m;i++){int x,y;scanf("%lld%lld",&x,&y);x++,y++;d[x][y]=d[y][x]=1;}for(re k=1;k<=n;k++)  for(re i=1;i<=n;i++)  for(re j=1;j<=n;j++)  d[i][j]=d[j][i]=min(d[i][j],d[i][k]+d[k][j]);for(re i=1;i<=n;i++)  for(re j=1;j<=n;j++)  if(d[i][j]>7)  op=1;if(op)  puts("No");else  puts("Yes");}
}
signed main()
{int T=1;
//    cin>>T;for(int index=1;index<=T;index++){//        printf("Case #%d: ",index);solve();
//        puts("");}return 0;
}
/*
4
1 2 3 4*/

1014 Choose the best route

#pragma GCC optimize(2)
#pragma GCC optimize(3,"Ofast","inline")
#include <bits/stdc++.h>
#define inf 0x7fffffff
//#define ll long long
#define int long long
//#define double long double
#define re register int
#define void inline void
#define eps 1e-8
//#define mod 1e9+7
#define ls(p) p<<1
#define rs(p) p<<1|1
#define pi acos(-1.0)
#define pb push_back
#define P pair < int , int >
#define mk make_pair
using namespace std;
const int mod=1e9+7;
const int M=1e8+5;
const int N=2e6+5;//?????????? 4e8
int n,m,d[N],tot,head[N],v[N];
struct ndoe{int ver,edge,next;}e[N];
void add(int x,int y,int z){e[++tot].ver=y;e[tot].edge=z;e[tot].next=head[x];head[x]=tot;}
void addedge(int x,int y,int z){add(x,y,z);add(y,x,z);}
void dijkstra(int s)
{d[s]=0;priority_queue < pair < int , int > > q;q.push(mk(0,s));while(q.size()){int x=q.top().second;q.pop();if(v[x])  continue;  v[x]=1;for(re i=head[x];i;i=e[i].next){int y=e[i].ver;int z=e[i].edge;if(d[y]>d[x]+z)  d[y]=d[x]+z,q.push(mk(-d[y],y));}}
}
void init()
{for(re i=0;i<=n+1;i++)  head[i]=v[i]=0,d[i]=1e18;tot=1;
}
void solve()
{int t;while(cin>>n>>m>>t){init();for(re i=1;i<=m;i++){int x,y,z;scanf("%lld%lld%lld",&x,&y,&z);add(x,y,z);}cin>>m;for(re i=1;i<=m;i++){int x;scanf("%lld",&x);add(n+1,x,0);}dijkstra(n+1);if(d[t]==1e18)  puts("-1");else  printf("%lld\n",d[t]);}
}
signed main()
{int T=1;
//    cin>>T;for(int index=1;index<=T;index++){//      printf("Case #%d: ",index);solve();
//        puts("");}return 0;
}
/*
4
1 2 3 4*/

1015 Arbitrage

#include <bits/stdc++.h>
#define inf 0x7fffffff
#define ll long long
//#define int long long
//#define double long double
#define eps 1e-5
//#define mod 1e9+7
using namespace std;
const int mod=1e4+7;
const int N=1e4+5;//空间最大限制 19260817
struct node
{int ver,next;double edge;
}e[N];
int tot,head[N];
void add(int x,int y,double z)
{e[++tot].ver=y;e[tot].next=head[x];e[tot].edge=z;head[x]=tot;
}
int n,m;
map < string , int > mp;
map < int , string > p;
int v[N],cnt[N];
double d[N];
void init()
{memset(e,0,sizeof(e));tot=0;memset(head,0,sizeof(head));mp.clear();
}
bool spfa(int s)
{memset(v,0,sizeof(v));memset(cnt,0,sizeof(cnt));for(int i=1;i<=n;i++)  d[i]=0;queue < int > q;q.push(s);v[s]=1;d[s]=1.0;
//    cnt[s]=1;while(q.size()){int x=q.front();q.pop();v[x]=0;for(int i=head[x];i;i=e[i].next){int y=e[i].ver;double z=e[i].edge;if(d[y]<z*d[x]){d[y]=z*d[x];cnt[y]=cnt[x]+1;if(cnt[y]>n)  return true;if(!v[y]){v[y]=1;q.push(y);}}}}return false;
}
signed main()
{//    ios::sync_with_stdio(false);int flag=0;while(scanf("%d",&n)&&n){init();flag++;int fla=0;
//        p.clear();for(int i=1;i<=n;i++){string s;cin>>s;mp[s]=i;}scanf("%d",&m);for(int i=1;i<=m;i++){string s1,s2;double z;cin>>s1>>z;cin>>s2;add(mp[s1],mp[s2],z);
//            add(mp[s2],mp[s1],z);}for(int i=1;i<=n;i++)if(spfa(i)){printf("Case %d: Yes\n",flag);fla=1;break;}if(!fla)  printf("Case %d: No\n",flag);}return 0;
}

杭电ACM-LCY算法进阶培训班-专题训练15相关推荐

  1. 杭电ACM-LCY算法进阶培训班-专题训练(矩阵快速幂)

    杭电ACM-LCY算法进阶培训班-专题训练(矩阵快速幂)[模板] 传送门 杭电ACM-LCY算法进阶培训班-专题训练(矩阵快速幂)[模板] 矩阵快速幂模板 Count Problem Descript ...

  2. 杭电ACM-LCY算法进阶培训班-专题训练(计算几何入门)

    杭电ACM-LCY算法进阶培训班-专题训练(计算几何入门) 传送门 杭电ACM-LCY算法进阶培训班-专题训练(计算几何入门) Shape of HDU Problem Description Inp ...

  3. 杭电ACM-LCY算法进阶培训班-专题训练(KMP)

    杭电ACM-LCY算法进阶培训班-专题训练(KMP) 杭电ACM-LCY算法进阶培训班-专题训练(KMP) 剪花布条 Problem Description Input Output Sample I ...

  4. 2021-06-18杭电ACM-LCY算法进阶培训班-专题训练16

    杭电ACM-LCY算法进阶培训班-专题训练(04-08-12-16) 1009 Intervals #pragma GCC optimize(2) #pragma GCC optimize(3,&qu ...

  5. 杭电ACM-LCY算法进阶培训班-专题训练09

    杭电ACM-LCY算法进阶培训班-专题训练09 1014 剪花布条 #pragma GCC optimize(2) #pragma GCC optimize(3,"Ofast",& ...

  6. 杭电ACM-LCY算法进阶培训班-专题训练(线段树)

    杭电ACM-LCY算法进阶培训班-专题训练(线段树) 传送门 目录 杭电ACM-LCY算法进阶培训班-专题训练(线段树) 张煊的金箍棒(2) Problem Description Input Out ...

  7. 杭电ACM-LCY算法进阶培训班-专题训练(强连通分量)

    点对统计 最大点权 点对统计 Problem Description 给定一个有向图,统计有多少点对u,v(1≤u<v≤n)u,v(1≤u<v≤n)u,v(1≤u<v≤n)满足uuu ...

  8. 【杭电ACM】1097 A hard puzzle

    [杭电ACM]1097  A hard puzzle http://acm.hdu.edu.cn/showproblem.php?pid=1097 先用int手写了算法结果竟然wrong answer ...

  9. 杭电ACM刷题(1):1002,A + B Problem II

    最近忙于考试复习,没有多少可供自己安排的时间,所以我利用复习之余的空闲时间去刷刷杭电acm的题目,也当对自己编程能力的锻炼吧. Problem Description I have a very si ...

最新文章

  1. 在Django项目中使用富文本编辑器
  2. C++中.lib静态库、.dll动态库的生成及调用1
  3. python【蓝桥杯vip练习题库】ADV-100第二大整数
  4. 2020-11-16(补码转换为无符号数)
  5. SAP——102和122和161区别
  6. Mybatsi注解开发-基础操作
  7. 详解vue动画的封装
  8. 电工结业试卷_电工学试题.doc
  9. 曲面化原理创新设计_曲面丝印机会给我们带来什么样的美丽
  10. ServletContext的用法
  11. 一直以来伴随我的一些学习习惯(part1)
  12. sniffer 嗅探器
  13. Transformer模型简介
  14. Spring Boot实训开发个人博客4
  15. Debussy5.4安装过程
  16. 大话西游手游服务器合服信息查询,大话西游手游2021年6月合区查询 6月最新合区列表...
  17. rabbitMq工作模式特性及整合springboot
  18. windows和android双系统平板,Windows平板打造双系统爽玩安卓APP
  19. cuda tong bu 和 yibu
  20. Linux操作之ar命令对文件打包与解开文件

热门文章

  1. 小学音乐课需要用到的关于《勤快人与懒惰人》的-五线谱
  2. 各向同性+随动硬化+过应力-vumat-理论推导
  3. android相框_如何将旧的Android平板电脑变成自动更新的数码相框
  4. 欧几里得算法及其扩展欧几里得算法——数论
  5. 计算机网络-网络应用(下)
  6. Mesos | 1.3.2 webui static 界面代码分析
  7. 9个不为人知的黑科技网站,每一个都强大到无敌!
  8. C++中Exit()与atexit()函数的使用
  9. KS检验样本测试集和训练集分布问题
  10. Java语言程序设计基础篇原书第十版第二章编程练习题答案