P3275 [SCOI2011]糖果
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]糖果相关推荐
- 洛谷P3275 [SCOI2011]糖果
题目描述 幼儿园里有\(N\)个小朋友,\(lxhgww\)老师现在想要给这些小朋友们分配糖果,要求每个小朋友都要分到糖果.但是小朋友们也有嫉妒心,总是会提出一些要求,比如小明不希望小红分到的糖果比他 ...
- 【差分约束】SCOI2011糖果
P3275 [SCOI2011]糖果 快noip了我还在干什么啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊 来我们看这道题 根据条件建图, 因为求得是最小值, 所以要跑最长路qwq(这是我记住的QAQ ...
- 差分约束 【bzoj2330】[SCOI2011]糖果
/*[bzoj2330][SCOI2011]糖果 2014年3月5日1,2761 Description 幼儿园里有N个小朋友,lxhgww老师现在想要给这些小朋友们分配糖果,要求每个小朋友都要分到糖 ...
- bzoj 2330: [SCOI2011]糖果
2330: [SCOI2011]糖果 Description 幼儿园里有N个小朋友,lxhgww老师现在想要给这些小朋友们分配糖果,要求每个小朋友都要分到糖果.但是小朋友们也有嫉妒心,总是会提出一些要 ...
- SPFA差分约束(bzoj 2330: [SCOI2011]糖果)
2330: [SCOI2011]糖果 Time Limit: 10 Sec Memory Limit: 128 MB Submit: 6355 Solved: 2096 [Submit][Stat ...
- 题解 P3275 【[SCOI2011]糖果】
清深夏令营机考压轴题,对差分约束的认识还是不够深刻,算法写出来了图没建对,/(ㄒoㄒ)/~~ #define inf 0x3f3f3f3f #define ll long long #define v ...
- 【BZOJ 2330】 [SCOI2011]糖果【差分约束】
题目跳转: http://www.lydsy.com/JudgeOnline/problem.php?id=2330 Description 幼儿园里有N个小朋友,lxhgww老师现在想要给这些小朋友 ...
- BZOJ2330 SCOI2011糖果
复习了一波差分约束. http://blog.csdn.net/my_sunshine26/article/details/72849441 构图方式记住就好. 本题要倒序插入否则会被卡. 1 #in ...
- 【bzoj2330】 [SCOI2011]糖果
此题考察差分约束系统,用SPFA求最长路. 构图,边的权值只为0(等于 大于等于 小于等于)或1(大于 小于),dist数组存最长距离,即该小朋友的最少糖果数. 一次SPFA之后,直接输出dis数组总 ...
最新文章
- c# Pdf 转换图片
- 【组合数学】集合的排列组合问题示例 ( 排列 | 组合 | 圆排列 | 二项式定理 )
- android源码settings中显示所有正在运行进程流程分析
- 为何解析浏览器地址参数会为null_request 包中出现 DNS 解析超时的探究
- js获取浏览器滚动条距离顶端的距离
- Angular 自定义属性指令-禁止input框输入空格-以及删除复制内容中的空格
- 【算法】合并两个有序数组【LeetCode】
- 网站开发中很有用的几个 jQuery 地图插件
- 使用phppgadmin 遇到的小问题
- OPPO推送:推送消息的字串,用于参数
- Memcached如何实现高性能批量删除
- ACDSee 10中文版+注册码
- 让刷Q币者对爱机你无从下手
- mysql 父子关系查询_如何让MySQL中单句实现无限层次父子关系查询
- 韩立春21日工作内容
- cubieboard服务器系统,cubieboard 搭建家用服务器
- Web3即将到来,我们做了什么?
- java 登录界面加验证码_java 做登陆窗口,带有用户名和密码输入框和验证码。求修改...
- Win8.1 安装nltk及nltk_data数据
- selenium爬取笔记