差分约束裸题,a==b的话分别建a>=b a<=b的边就行。倒序加边不然会TLE是什么鬼

  1. #include<iostream>
  2. #include<cstring>
  3. #include<cstdlib>
  4. #include<cstdio>
  5. #define ll long long
  6. using namespace std;
  7. const int maxn=,inf=1e9;
  8. struct poi{int too,pre,sum;}e[maxn];
  9. int n,m,x,y,z,front,rear,tot;
  10. ll dist[maxn],ans;
  11. int h[maxn],v[maxn],last[maxn],tim[maxn];
  12. bool flag;
  13. void read(int &k)
  14. {
  15. int f=;k=;char c=getchar();
  16. while(c<''||c>'')c=='-'&&(f=-),c=getchar();
  17. while(c<=''&&c>='')k=k*+c-'',c=getchar();
  18. k*=f;
  19. }
  20. void add(int x,int y,int z){e[++tot].too=y;e[tot].sum=z;e[tot].pre=last[x];last[x]=tot;}
  21. void spfa()
  22. {
  23. for(int i=;i<=n;i++)dist[i]=-inf;
  24. dist[]=;v[]=;front=rear=;h[++rear]=;
  25. while(front!=rear)
  26. {
  27. int now=h[++front];if(front==maxn)front=-;
  28. for(int i=last[now],too=e[i].too;i;i=e[i].pre,too=e[i].too)
  29. if(dist[too]<dist[now]+e[i].sum)
  30. {
  31. dist[too]=dist[now]+e[i].sum;
  32. if(++tim[too]>){printf("-1");flag=;return;}
  33. if(!v[too])
  34. {
  35. v[too]=;h[++rear]=too;
  36. if(rear==maxn)rear=-;
  37. }
  38. }
  39. v[now]=;
  40. }
  41. }
  42. int main()
  43. {
  44. read(n);read(m);
  45. for(int i=n;i;i--)add(,i,);
  46. for(int i=;i<=m;i++)
  47. {
  48. read(z);read(x);read(y);
  49. if(z==)add(x,y,),add(y,x,);
  50. if(z==)
  51. {
  52. if(x==y){printf("-1");return ;}
  53. add(x,y,);
  54. }
  55. if(z==)add(y,x,);
  56. if(z==)
  57. {
  58. if(x==y){printf("-1");return ;}
  59. add(y,x,);
  60. }
  61. if(z==)add(x,y,);
  62. }
  63. spfa();
  64. if(flag)return ;
  65. for(int i=;i<=n;i++)ans+=dist[i];
  66. printf("%lld\n",ans);
  67. return ;
  68. }

bzoj2330: [SCOI2011]糖果(差分约束)的更多相关文章

  1. BZOJ2330:[SCOI2011]糖果(差分约束)

    Description 幼儿园里有N个小朋友,lxhgww老师现在想要给这些小朋友们分配糖果,要求每个小朋友都要分到糖果.但是小朋友们也有嫉妒心,总是会提出一些要求,比如小明不希望小红分到的糖果比他的 ...

  2. P3275 [SCOI2011]糖果 && 差分约束(二)

    学习完了差分约束是否有解, 现在我们学习求解最大解和最小解 首先我们回想一下是否有解的求解过程, 不难发现最后跑出来任意两点的最短路关系即为这两元素的最短路关系. 即: 最后的最短路蕴含了所有元素之间 ...

  3. BZOJ 2330 SCOI2011糖果 差分约束

    2330: [SCOI2011]糖果 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 2819  Solved: 820 题目连接 http://www ...

  4. bzoj 2330 [SCOI2011]糖果 差分约束模板

    题目大意 幼儿园里有N个小朋友,lxhgww老师现在想要给这些小朋友们分配糖果,要求每个小朋友都要分到糖果.但是小朋友们也有嫉妒心,总是会提出一些要求,比如小明不希望小红分到的糖果比他的多,于是在分配 ...

  5. 洛谷P3275 [SCOI2011]糖果(差分约束)

    题目描述 幼儿园里有 $N$ 个小朋友,$lxhgww $老师现在想要给这些小朋友们分配糖果,要求每个小朋友都要分到糖果.但是小朋友们也有嫉妒心,总是会提出一些要求,比如小明不希望小红分到的糖果比他的 ...

  6. BZOJ 2330: [SCOI2011]糖果( 差分约束 )

    坑爹...要求最小值要转成最长路来做.... 小于关系要转化一下 , A < B -> A <= B - 1 ------------------------------------ ...

  7. [SCOI2011]糖果 (差分约束)

    题目链接 Solution 差分约束乱搞就好了. 需要注意的地方: 对于大于等于的直接联等于,应为等于,因为对于我满足条件而言,等于总是最好的. 对于等于的,注意要建双向边. 然后要开 \(long~ ...

  8. bzoj2330: [SCOI2011]糖果 差分约束系统

    幼儿园里有N个小朋友,lxhgww老师现在想要给这些小朋友们分配糖果,要求每个小朋友都要分到糖果.但是小朋友们也有嫉妒心,总是会提出一些要求,比如小明不希望小红分到的糖果比他的多,于是在分配糖果的时候 ...

  9. [BZOJ2330][SCOI2011]糖果 差分约束系统+最短路

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2330 类似于题目中这种含有不等式关系,我们可以建立差分约束系统来跑最长路或最短路. 对于一 ...

  10. BZOJ2330 SCOI2011 糖果 【差分约束】

    BZOJ2330 SCOI2011 糖果 Description 幼儿园里有N个小朋友,lxhgww老师现在想要给这些小朋友们分配糖果,要求每个小朋友都要分到糖果.但是小朋友们也有嫉妒心,总是会提出一 ...

随机推荐

  1. APP上下左右滑动屏幕的处理

    #获得机器屏幕大小x,y driver = self.driver def getSize(): x = driver.get_window_size()['width'] y = driver.ge ...

  2. Python学习-猜数字游戏

    菩萨蛮·黄鹤楼 茫茫九派流中国,沉沉一线穿南北.烟雨莽苍苍,龟蛇锁大江. 黄鹤知何去,剩有游人处.把酒酹滔滔,心潮逐浪高! --coding:UTF-8-- import random secret ...

  3. tpo-09 C1 Advice on a term paper's topic

    第 1 段 1.Listen to a conversation between a student and her professor. 请听一段一名学生和教授讨论的对话. 第 2 段 1.Befo ...

  4. [Clr via C#读书笔记]Cp9参数

    Cp9参数 可选参数和命名参数 参数设置了默认值(设置要从右到左,有默认值的参数必须放在没有默认值的参数的后面,默认值必须是常量),就可以使用可选参数和命名参数了.向方法传递实参的时候,编译器按照从左 ...

  5. smartgit 使用

    合并分支

  6. Spark Streaming - DStream

    1 Overview Spark Streaming is an extension of the core Spark API that enables scalable, high-through ...

  7. python 项目配置虚拟环境

    # Windows 环境1, 安装 Visual C++ 2015 Build Tools, 依赖.Net Framework 4.6, 安装包位置 ./tools/windows/visualcpp ...

  8. iOS- 非ARC的项目内存管理细节详解(实战)

    1.前言 接上文:iOS- 如何将非ARC的项目转换成ARC项目(实战) 2.内存管理时相关的配置 当我们把将非ARC的内存管理都管理好后,发现在做有些操作的时候内存还是在一直的缓慢增加 比如做一个最 ...

  9. 认识简单的C

  10. java文件操作(普通文件以及配置文件的读写操作)

    转自:java文件操作(普通文件以及配置文件的读写操作) 读取普通文件 : /** * xiangqiao123欢迎你 如果对代码有疑问可以加qq群咨询:151648295 * * 读取MyFile文 ...