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( ...
随机推荐
- java Reentrant Lock
//Listing 7-1. Achieving Synchronization in Terms of Reentrant Locks import java.util.concurrent.Exe ...
- AndEngine
AndEngine http://www.oschina.net/question/54100_16765
- MySQL安装图解教程
安装文件存放路径:不能有中文和空格! 校验 1 安装MySQL 2 校验MySQL 登录MySQL:mysql -uroot -p123 退出MySQL:exit | quit 查看数据库:show ...
- c语言学习感想
接触c语言已经2个多月了,在这段期间按时的完成了作业,上课能够较好的听讲,因此我获得了老师奖励的小黄衫. 同时,希望自己能够学好c语言! 学习感受与心得 因为兴趣,选择了计算机这专业,我从遥远的南方来 ...
- leetcode:Factorial Trailing Zeroes
Given an integer n, return the number of trailing zeroes in n!. 最初的代码 class Solution { public: int t ...
- imx6 MFG TOOL 分析
之前分析过mfgtool的内容,最近从官网下载,返现新版的mfgtool工具将imx6各种版本的linux/android都使用一个工具进行烧录.所以从新分析一下. 新版与旧版的一个区别是烧写使用的u ...
- LeetCode Find Minimum in Rotated Sorted Array II
原题链接在这里:https://leetcode.com/problems/find-minimum-in-rotated-sorted-array-ii/ 题目: Follow up for &qu ...
- php常用转义字符‘ “ {} $ \n
php 单引号和双引号的区别: 双引号串中的内容可以被解释而且替换,而单引号串中的内容总被认为是普通字符. <?php $a = 'abc'; echo "<br>&quo ...
- swift 同步加载图片
import UIKit @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { var window: ...
- linux查看公网地址
curl cip.cc curl http://members.3322.org/dyndns/getip