C++之路进阶——codevs4416(FFF的后宫)
4416 FFF 团卧底的后宫
你在某日收到了 FFF 团卧底的求助,在他某日旅游回来,他的后宫们出现了一些不可调和的矛盾,如果 FFF 团卧底把自己的宝贝分给 a 号妹子,那么 b 号妹子至少要在站在 a 号妹子的右边距离 d,妹子才愿意得到那个宝贝。可是后宫里也有玩得好的妹子呀,她们总是渴望亲近一点,如果把自己的宝贝分给 a 号妹子,那么与她亲近的妹子与 a 号妹子的距离不会超过 l。现在总共有 n 个妹子,k 个这样的矛盾关系,m 个亲近关系。假设他的宝贝是无限的,保证每一个妹子都有宝贝的情况下,第 n 个妹子和第一个妹子的最远距离是多少呢?
第一行为 n,m,k
此后 m 行为亲近关系
此后 k 行为矛盾关系
一行,为最长的距离
4 2 1
1 3 100
2 4 200
2 3 33
267
对于 40%的数据,n<=100
对于 100%的数据,n<=1000,m<=10000,从 1 开始编号,距离在 int 范围内
代码:
#include<cstdio>
#define INF 0x7fffffff
#define maxn 10000
#include<iostream> using namespace std; int n,ml,md,cnt=; struct cf
{
int to[maxn],a[maxn],next[maxn],head[maxn],w[maxn],q[maxn*],tt[maxn];
long long dis[maxn];
bool vis[maxn];
int insert(int u,int v,int ww)
{
to[++cnt]=v; next[cnt]=head[u]; head[u]=cnt; w[cnt]=ww;
}
cf()
{
scanf("%d%d%d",&n,&ml,&md);
for (int i=;i<=ml;i++)
{
int u,v,w;
scanf("%d%d%d",&u,&v,&w);
insert(u,v,w);
}
for (int i=;i<=md;i++)
{
int u,v,w;
scanf("%d%d%d",&u,&v,&w);
insert(v,u,-w);
}
for (int i=;i<=n;i++) dis[i]=0x7fffffff;
}
int spfa()
{
int h=,t=;
q[]=;
vis[]=;
tt[]++;
dis[]=;
while (t<h)
{
int now=q[t++];
for (int i=head[now];i;i=next[i])
{ if (dis[to[i]]>dis[now]+w[i])
{
tt[to[i]]++;
if (tt[to[i]]==n+) return ;
dis[to[i]]=dis[now]+w[i];
if (!vis[to[i]])
{
vis[to[i]]=;
q[h++]=to[i];
}
}
}
vis[now]=;
}
return ;
}
void print()
{
if(!spfa()) printf("-1");
else if(dis[n]==0x7fffffff) printf("-2");
else printf("%lld\n",dis[n]);
} }cf;
int main()
{
cf.print();
return ;
}
C++之路进阶——codevs4416(FFF的后宫)的更多相关文章
- CodeVS4416 FFF 团卧底的后宫
题目描述 Description 你在某日收到了 FFF 团卧底的求助,在他某日旅游回来,他的后宫们出现了一些不可调和的矛盾,如果 FFF 团卧底把自己的宝贝分给 a 号妹子,那么 b 号妹子至少要在 ...
- 差分约束 4416 FFF 团卧底的后宫
/* 4416 FFF 团卧底的后宫 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description 你在某日收到了 FFF ...
- [OJ#40]后宫佳丽
[OJ#40]后宫佳丽 试题描述 如果机房要关门了,或者有妹子在等你,你可以直接看最后一句话. Fyq 是一只饥渴的鸭子. Fyq 有一个充实的后宫,可惜他总是体力不支,为此他经常苦恼,总是想方设法让 ...
- NOIP模拟赛 czy的后宫6
czy的后宫6 题目描述 众所周知的是丧尸czy有很多妹子(虽然很多但是质量不容乐观QAQ),今天czy把n个妹子排成一行来检阅.但是czy的妹子的质量实在……所以czy看不下去了.检阅了第i个妹子会 ...
- NOIP模拟赛 czy的后宫4
czy的后宫4 [问题描述] czy有很多妹子,妹子虽然数量很多,但是质量不容乐观,她们的美丽值全部为负数(喜闻乐见). czy每天都要带N个妹子到机房,她们都有一个独一无二的美丽值,美丽值为-1到- ...
- NOIP模拟赛 czy的后宫5
描述 czy要召集他的妹子,但是由于条件有限,可能每个妹子不能都去,但每个妹子都有一个美丽值,czy希望来的妹子们的美丽值总和最大(虽然……). czy有一个周密的电话通知网络,它其实就是一棵树,根结 ...
- NOIP模拟赛 czy的后宫3
[题目描述] 上次czy在机房妥善安排了他的后宫之后,他发现可以将他的妹子分为c种,他经常会考虑这样一个问题:在[l,r]的妹子中间,能挑选出多少不同类型的妹子呢? 注意:由于czy非常丧尸,所以他要 ...
- NOIP模拟赛 czy的后宫
[题目描述] czy要妥善安排他的后宫,他想在机房摆一群妹子,一共有n个位置排成一排,每个位置可以摆妹子也可以不摆妹子.有些类型妹子如果摆在相邻的位置(隔着一个空的位置不算相邻),就不好看了.假定每种 ...
- C++之路进阶——P2022
P2022 有趣的数 让我们来考虑1到N的正整数集合.让我们把集合中的元素按照字典序排列,例如当N=11时,其顺序应该为:1,10,11,2,3,4,5,6,7,8,9. 定义K在N个数中的位置为Q( ...
随机推荐
- correctly handle PNG transparency in Win IE 5.5 & 6.
function correctPNG() // correctly handle PNG transparency in Win IE 5.5 & 6. { var arVersion = ...
- filter:Alpha总结
filter:Alpha(Opacity=?, FinishOpacity=?, Style=?, StartX=?, StartY=?, FinishX=?, FinishY=?)Opacity:透 ...
- 删除下标为n的数组值
Array.prototype.del=function(n) { //n表示第几项,从0开始算起.//prototype为对象原型,注意这里为对象增加自定义方法的方法. if(n<0) //如 ...
- 关于Memo或者Edit之类控件, 直接设置Text无法撤销的解决方案
昨天看到群里有人问使用Memo1.Text := '11111';来设置内容的代码无法使用Memo1.Undo的方式来撤销 测试了一下果然如此, 跟踪了VCL代码, 发现Text := '11111' ...
- Excel Sheet Column Number || leetcode
很简单的26进制问题 int titleToNumber(char* s) { int sum=0,temp; char *p=s; while(*p!='\0'){ sum=sum*26+(*p-' ...
- Ajax如何解决跨域问题
如果需要从不同的服务器(不同域名)上获取数据就需要使用跨域 HTTP 请求. 跨域请求在网页上非常常见.很多网页从不同服务器上载入 CSS, 图片,Js脚本等. 在现代浏览器中,为了数据的安全,所有请 ...
- UITabBar 设置字体的颜色(选中状态/正常状态)setTitleTextAttributes
UITabbar有个setTintColor这个方法,可以理解为,高亮的时候,或者点击后的颜色设置. UITabBarItem有个setTitleTextAttributes的方法,是用来设置字体的颜 ...
- 网络应用发布到linux上的web服务器上页面上显示麻将牌式字符的问题
什么是麻将牌式字符,就是中文显示为一个竖立长方形框框里面有四个数字或字母,请看下图中中文,日文和韩文的显示就知道了: 为什么会遇到这个问题? 系统不支持中文,日文和韩文字体. 如何解决: 安装中文字体 ...
- The Secrets of Oracle Row Chaining and Migration
from http://www.akadia.com/services/ora_chained_rows.html Overview If you notice poor performance in ...
- JQuery:JQuery操作CSS类
JQuery:CSS类jQuery - 获取并设置 CSS 类,通过 jQuery,可以很容易地对 CSS 元素进行操作.jQuery 操作 CSSjQuery 拥有若干进行 CSS 操作的方法.我们 ...