题目

BZOJ

虽然是解压题但也学到了简洁的码风

做法

\(dijkstra\)跑动规

My complete code

  1. #include<bits/stdc++.h>
  2. #include<vector>
  3. #include<queue>
  4. using namespace std;
  5. typedef int LL;
  6. const LL maxn=1e6+9,inf=0x3f3f3f3f,up=1<<14;
  7. inline LL Read(){
  8. LL x(0),f(1); char c=getchar();
  9. while(c<'0' || c>'9'){ if(c=='-') f=-1; c=getchar(); }
  10. while(c>='0' && c<='9') x=(x<<3)+(x<<1)+c-'0', c=getchar();
  11. return x*f;
  12. }
  13. struct node{
  14. LL to,nxt,d,bit;
  15. }dis[maxn];
  16. LL n,num,m,p,k;
  17. LL head[209],lu[209][up],s[209];
  18. bool visit[209][up];
  19. inline void Add(LL u,LL v,LL t,LL bit){
  20. dis[++num]=(node){v,head[u],t,bit}; head[u]=num;
  21. }
  22. #define mpr(x,y,z) make_pair(make_pair(x,y),z)
  23. typedef pair<LL,LL> pii;
  24. priority_queue<pair<pii,LL>,vector<pair<pii,LL> >,greater<pair<pii,LL> > >que;
  25. inline LL Dij(){
  26. memset(visit,false,sizeof(visit));
  27. memset(lu,inf,sizeof(lu));
  28. lu[1][0]=0;
  29. que.push(mpr(0,1,0));
  30. while(que.size()){
  31. LL d(que.top().first.first), u(que.top().first.second), bit(que.top().second);
  32. que.pop();
  33. if(visit[u][bit]) continue;
  34. visit[u][bit]=true;
  35. if(u==n) return d;
  36. bit|=s[u];
  37. for(LL i=head[u];i;i=dis[i].nxt){
  38. LL v(dis[i].to);
  39. if((bit|dis[i].bit)!=bit) continue;
  40. if(lu[v][bit]>d+dis[i].d){
  41. lu[v][bit]=d+dis[i].d;
  42. que.push(mpr(lu[v][bit],v,bit));
  43. }
  44. }
  45. }return -1;
  46. }
  47. int main(){
  48. n=Read(); m=Read(); p=Read(); k=Read();
  49. for(LL i=1;i<=k;++i){
  50. LL u(Read()),tot(Read());
  51. while(tot--){
  52. LL x(Read());
  53. s[u]|=(1<<x-1);
  54. }
  55. }
  56. while(m--){
  57. LL u(Read()),v(Read()),t(Read()),tot(Read());
  58. LL bit(0);
  59. while(tot--){
  60. LL x(Read());
  61. bit|=(1<<x-1);
  62. }
  63. Add(u,v,t,bit); Add(v,u,t,bit);
  64. }
  65. printf("%d",Dij());
  66. return 0;
  67. }

[POI2009]Wie的更多相关文章

  1. 1139: [POI2009]Wie

    1139: [POI2009]Wie https://www.lydsy.com/JudgeOnline/problem.php?id=1139 分析: Dijkstra.状压最短路,dis[i][j ...

  2. bzoj1139:[POI2009]Wie

    传送门 状压dp,最短路 spfa似乎特别慢 代码: #include<cstdio> #include<iostream> #include<algorithm> ...

  3. bzoj AC倒序

    Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...

  4. BZOJ 1115: [POI2009]石子游戏Kam

    1115: [POI2009]石子游戏Kam Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 883  Solved: 545[Submit][Stat ...

  5. BZOJ 4384: [POI2015]Trzy wieże

    4384: [POI2015]Trzy wieże Time Limit: 20 Sec  Memory Limit: 128 MBSubmit: 217  Solved: 61[Submit][St ...

  6. BZOJ 1142: [POI2009]Tab

    1142: [POI2009]Tab Time Limit: 40 Sec  Memory Limit: 162 MBSubmit: 213  Solved: 80[Submit][Status][D ...

  7. 【BZOJ】【1115】【POI2009】石子游戏KAM

    博弈论 这个题……一看就觉得很捉急啊= =肿么办? 灵光一现:差分一下~ 那么我们看一下差分以后,从第 i 堆中拿走 k 个石子变成了:a[i]-=k; a[i+1]+=k; 嗯这就转化成了阶梯博弈! ...

  8. bzoj 1133: [POI2009]Kon dp

    1133: [POI2009]Kon Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 242  Solved: 81[Submit][Status][D ...

  9. bzoj 1138: [POI2009]Baj 最短回文路 dp优化

    1138: [POI2009]Baj 最短回文路 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 161  Solved: 48[Submit][Sta ...

随机推荐

  1. html 常用

    1. var canvas = document.getElementById("tutorial"); var ctx = canvas.getContext("2d& ...

  2. JavaScript中对象属性的加入和删除

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  3. 将Mac上的***代理共享给其他设备

    Windows版***带有Share over LAN功能,可以让一些不方便安装***客户端的设备一同“鸡犬升天”,如未越狱的iOS设备.但是 OS X 就没有这么幸运了,这时候你需要Privoxy助 ...

  4. POI Excel 冷冻线

    冷冻线 Sheet.createFreezePane data bar and  color scale SheetConditionalFormatting scf = sheet.getSheet ...

  5. Xcode7.3打包ipa文件 报错和解决

    An error occurred during export. The file “xxx.ipa” couldn’t be opened because there is no such file ...

  6. windows 下XAMPP 使用Nginx替代apache作为服务器

    说实话, 在windows下使用Nginx 着实有点不太方便, 但因项目需求, 又不想换系统(虽然可以搞个虚拟机玩), 只能用Nginx了 好了, 不多说了. 开始... 首先我用的是xampp包(A ...

  7. lumen 事件

    今天需要实现日志功能,所有使用了一下lumen的event(事件)和listener(监听) Lumen事件:https://lumen.laravel-china.org/docs/5.3/even ...

  8. python3 - 闭包

    # 定义一个函数def test(number): # 在函数内部再定义一个函数,并且这个函数用到外边函数的变量, # 那么将这个函数以及用到的一些变量称之为 闭包. def text_in(numb ...

  9. C#实现按键精灵的'找图' '找色' '找字'的功能

    http://www.cnblogs.com/JimmyBright/p/4355862.html 背景:游戏辅助功能通常使用按键精灵编写脚本,按键精灵的最大卖点就是能够找到画面中字,图,色,这对于模 ...

  10. 如何导入和导出应用数据通过电子邮件应用程序在你的IOS

     本文转载至 http://blog.csdn.net/zaitianaoxiang/article/details/6657887 http://yueding920.blog.163.com/bl ...