复习了一波差分约束。

http://blog.csdn.net/my_sunshine26/article/details/72849441

构图方式记住就好。

本题要倒序插入否则会被卡。

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 const int N=1e5+10;
 4 struct node{
 5     int to,nex,w;
 6 }e[N<<2];
 7 int head[N],n,k,cnt,v[N],d[N],in[N];
 8 long long ans;queue<int>q;
 9 void add(int x,int y,int w)
10 {
11     e[++cnt].to=y;e[cnt].nex=head[x];head[x]=cnt;e[cnt].w=w;
12 }
13 bool spfa()
14 {
15     q.push(0);v[0]=1;d[0]=0;in[0]=1;
16     while(!q.empty())
17     {
18         int x=q.front();q.pop();v[x]=0;
19         for(int i=head[x];i;i=e[i].nex)
20         {
21             int y=e[i].to;
22             if(e[i].w+d[x]<=d[y])continue;
23             d[y]=d[x]+e[i].w;in[y]++;
24             if(in[y]>=n)return 0;
25             if(!v[y])
26             {
27                 q.push(y);v[y]=1;
28             }
29         }
30     }
31     return 1;
32 }
33 int main()
34 {
35     scanf("%d%d",&n,&k);
36     for(int i=1;i<=k;++i)
37     {
38         int x,a,b;
39         scanf("%d%d%d",&x,&a,&b);
40         if(x==1)add(a,b,0),add(b,a,0);
41         else if(x==2)add(a,b,1);
42         else if(x==3)add(b,a,0);
43         else if(x==4)add(b,a,1);
44         else add(a,b,0);
45     }
46     for(int i=n;i;--i)add(0,i,1);
47     if(!spfa())puts("-1");
48     else{
49         for(int i=1;i<=n;++i)ans+=d[i];
50         printf("%lld\n",ans);
51     }
52     return 0;
53 }

转载于:https://www.cnblogs.com/nbwzyzngyl/p/8612777.html

BZOJ2330 SCOI2011糖果相关推荐

  1. 差分约束 【bzoj2330】[SCOI2011]糖果

    /*[bzoj2330][SCOI2011]糖果 2014年3月5日1,2761 Description 幼儿园里有N个小朋友,lxhgww老师现在想要给这些小朋友们分配糖果,要求每个小朋友都要分到糖 ...

  2. bzoj 2330: [SCOI2011]糖果

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

  3. SPFA差分约束(bzoj 2330: [SCOI2011]糖果)

    2330: [SCOI2011]糖果 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 6355  Solved: 2096 [Submit][Stat ...

  4. 【差分约束】SCOI2011糖果

    P3275 [SCOI2011]糖果 快noip了我还在干什么啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊 来我们看这道题 根据条件建图, 因为求得是最小值, 所以要跑最长路qwq(这是我记住的QAQ ...

  5. 【bzoj2330】 [SCOI2011]糖果

    此题考察差分约束系统,用SPFA求最长路. 构图,边的权值只为0(等于 大于等于 小于等于)或1(大于 小于),dist数组存最长距离,即该小朋友的最少糖果数. 一次SPFA之后,直接输出dis数组总 ...

  6. 洛谷P3275 [SCOI2011]糖果

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

  7. 【BZOJ 2330】 [SCOI2011]糖果【差分约束】

    题目跳转: http://www.lydsy.com/JudgeOnline/problem.php?id=2330 Description 幼儿园里有N个小朋友,lxhgww老师现在想要给这些小朋友 ...

  8. P3275 [SCOI2011]糖果

    emmmm博客补不完喽~~~(其实这是题目链接,但..也确实是事实..) 这题呢,也基本上就是差分约束的模板题了(要是不知道差分约束的话自行百度一下喽~~),实际上这类题目吧,撇开读入,基本都一样,就 ...

  9. 题解 P3275 【[SCOI2011]糖果】

    清深夏令营机考压轴题,对差分约束的认识还是不够深刻,算法写出来了图没建对,/(ㄒoㄒ)/~~ #define inf 0x3f3f3f3f #define ll long long #define v ...

最新文章

  1. React组件常用设计模式之Render Props
  2. MFC中的CString.Format及CString,string,char*之间的转换
  3. Linux 之 Kickstart
  4. Codeforces #528 Div2 F (1087F) Rock-Paper-Scissors Champion 树状数组+set
  5. oracle某个存过的执行时间,java – 为什么oracle存储过程的执行时间会大大增加,具体取决于它的执行方式?...
  6. 常见Java错误的十大列表(前100名!)
  7. 【Ubuntu】Ubuntu16.04安装 搜狗输入法 史上最详细
  8. python为什么closed_为什么python类的函数被调用两次[关闭](Why a function of python class is called twice [closed])...
  9. 关于config_site.h文件【译】
  10. PyCharm中脚本文件无法识别相对路径
  11. iphone开发每日一练【2011-10-21】
  12. GetFlashInfo V7.5_u盘芯片检测工具
  13. 一致性协议和共识算法
  14. Week 10. 第189-204题
  15. vue 移动端进入页面自动弹出软键盘
  16. Spring Cloud项目是如何读取bootstrap.properties文件的?
  17. 什么是数据库?数据库有什么作用?
  18. Systemd中环境变量设置
  19. 自己构建iSCSI磁盘阵列
  20. R语言ggplot2可视化:使用ggpubr包的ggdensity函数可视化密度图、使用scale_x_continuous函数指定X轴坐标轴的取值范围(起始值和终止值)

热门文章

  1. win10右键闪退到桌面_WIN10设置闪退,桌面右键个性化显示设置等均无效
  2. 【Pytorch神经网络理论篇】 18 循环神经网络结构:LSTM结构+双向RNN结构
  3. lgg6 android 9,LG G6的18:9屏幕用起来到底是什么样
  4. 一、Java Web——JDBC快速入门(详解)
  5. 读写Excel 用 xlsxwriter,openpyxl 更灵活
  6. 天池在线编程 2020国庆八天乐 - 6. 山谷序列(DP)
  7. K 近邻法(K-Nearest Neighbor, K-NN)
  8. LeetCode 98. 验证二叉搜索树(中序遍历)
  9. python列表appendtext_python-默认文本以及列表textvariable Entry小部...
  10. ole db 错误 通讯链接失败_西门子PLC1200的S7通讯(同一项目下)--GET接收指令