emmmm博客补不完喽~~~(其实这是题目链接,但。。也确实是事实。。)

这题呢,也基本上就是差分约束的模板题了(要是不知道差分约束的话自行百度一下喽~~),实际上这类题目吧,撇开读入,基本都一样,就是跑几遍最短路,但是不得不说这个差分约束的读入真的是多种多样,就没见过两题的读入能一样的。。

反正就是对于不同的数据进行建图,具体的还是看代码吧嘤嘤嘤~~

  1 #include<set>
  2 #include<map>
  3 #include<list>
  4 #include<queue>
  5 #include<stack>
  6 #include<string>
  7 #include<cmath>
  8 #include<ctime>
  9 #include<vector>
 10 #include<bitset>
 11 #include<memory>
 12 #include<utility>
 13 #include<cstdio>
 14 #include<sstream>
 15 #include<iostream>
 16 #include<cstdlib>
 17 #include<cstring>
 18 #include<algorithm>
 19 using namespace std;
 20
 21 int n,k,tot;
 22 long long ans;
 23 int head[300005],next[300005],to[300005],w[300005],dis[300005],used[300005];
 24 bool vis[300005];
 25 queue<int>q;//堆优化
 26
 27 inline int get(){//快读
 28     char c=getchar();
 29     int res=0;
 30     while (c<'0'||c>'9') c=getchar();
 31     while (c>='0'&&c<='9'){
 32         res=(res<<3)+(res<<1)+c-'0';
 33         c=getchar();
 34     }
 35     return res;
 36 }
 37
 38 void add(int u,int v,int c){//链式前向星
 39     to[++tot]=v;
 40     next[tot]=head[u];
 41     head[u]=tot;
 42     w[tot]=c;
 43 }
 44
 45 int main(){
 46     n=get();
 47     k=get();
 48     while(k--){
 49         int u,v,c;
 50         c=get(),u=get(),v=get();//读入,并在下面对不同的数据进行分组处理
 51         if(c==1){
 52             add(u,v,0);
 53             add(v,u,0);
 54         }
 55         else if(c==2){
 56             if(u==v){
 57                 printf("-1\n");
 58                 return 0;
 59             }
 60             add(u,v,1);
 61         }
 62         else if(c==3){
 63             add(v,u,0);
 64         }
 65         else if(c==4){
 66             if(v==u){
 67                 printf("-1\n");
 68                 return 0;
 69             }
 70             add(v,u,1);
 71         }
 72         else if(c==5)add(u,v,0);
 73     }
 74     for(int i=n;i>=1;i--){
 75         add(0,i,1);//处理非连通图的情况
 76     }
 77     vis[0]=1,q.push(0);//直接跑spfa
 78     while(!q.empty()){
 79         int u=q.front();
 80         q.pop();
 81         vis[u]=0;
 82         if(used[u]==n-1){
 83             printf("-1\n");
 84             return 0;
 85         }
 86         used[u]++;
 87         for(int i=head[u];i;i=next[i]){
 88             if(dis[to[i]]<dis[u]+w[i]){
 89                 dis[to[i]]=dis[u]+w[i];
 90                 if(!vis[to[i]]){
 91                     vis[to[i]]=1;
 92                     q.push(to[i]);
 93                 }
 94             }
 95         }
 96     }
 97     for(int i=1;i<=n;i++){
 98         ans+=dis[i];
 99     }
100     printf("%lld\n",ans);//输出,结束
101     return 0;
102 }

好的就这样了我还要睡觉,白白。。。

转载于:https://www.cnblogs.com/hahaha2124652975/p/11125700.html

P3275 [SCOI2011]糖果相关推荐

  1. 洛谷P3275 [SCOI2011]糖果

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

  2. 【差分约束】SCOI2011糖果

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

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

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

  4. bzoj 2330: [SCOI2011]糖果

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

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

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

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

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

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

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

  8. BZOJ2330 SCOI2011糖果

    复习了一波差分约束. http://blog.csdn.net/my_sunshine26/article/details/72849441 构图方式记住就好. 本题要倒序插入否则会被卡. 1 #in ...

  9. 【bzoj2330】 [SCOI2011]糖果

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

最新文章

  1. c# Pdf 转换图片
  2. 【组合数学】集合的排列组合问题示例 ( 排列 | 组合 | 圆排列 | 二项式定理 )
  3. android源码settings中显示所有正在运行进程流程分析
  4. 为何解析浏览器地址参数会为null_request 包中出现 DNS 解析超时的探究
  5. js获取浏览器滚动条距离顶端的距离
  6. Angular 自定义属性指令-禁止input框输入空格-以及删除复制内容中的空格
  7. 【算法】合并两个有序数组【LeetCode】
  8. 网站开发中很有用的几个 jQuery 地图插件
  9. 使用phppgadmin 遇到的小问题
  10. OPPO推送:推送消息的字串,用于参数
  11. Memcached如何实现高性能批量删除
  12. ACDSee 10中文版+注册码
  13. 让刷Q币者对爱机你无从下手
  14. mysql 父子关系查询_如何让MySQL中单句实现无限层次父子关系查询
  15. 韩立春21日工作内容
  16. cubieboard服务器系统,cubieboard 搭建家用服务器
  17. Web3即将到来,我们做了什么?
  18. java 登录界面加验证码_java 做登陆窗口,带有用户名和密码输入框和验证码。求修改...
  19. Win8.1 安装nltk及nltk_data数据
  20. selenium爬取笔记

热门文章

  1. Jinja2模板与模板继承
  2. python3高级 一 迭代器
  3. 大话数据结构顺序表和链表
  4. 北大核心期刊2012《科技通报》杂志简介《科技通报》论文范文
  5. ReportViewer教程(1)-新建工程,添加Form和报表浏览器
  6. [深度学习-实践]条件生成对抗网络cGAN的例子-Tensorflow2.x Keras
  7. 吴恩达深度学习 —— 2.9 逻辑回归中的梯度下降法
  8. python热键+鼠标键盘控制
  9. 利用批处理程序和excel获取windows文件信息
  10. 从搭建大数据环境说起,到执行WordCount所遇到的坑