https://www.luogu.org/problem/show?pid=U10223#sub

题目背景

众所周知,Cx是一个宇宙大犇。Cx能文善武,一直在为大一统的实现而努力奋斗着。Cx将调用他的精锐军队,一个精锐士兵最多可以战胜十个埃及士兵。同时Cx是个爱才的人,他想要制定一份能使在占领埃及的前提下,使自己的军队损失最小的作战方案。Cx可做好了充分的准备,他收集到了很多情报,经过了长期的准备,在今天这个伟大的日子,他终于作下了远征埃及的决定!

题目描述

Cx将会把他收集到的所有情报都汇总给你(当然不能有什么遗漏的),情报的内容包括了埃及的所有城市所驻扎的军队人数,和与其单向连通的城市(路程什么的对千里马来说不算什么)。编号1的城市即为首都,占领首都即战争胜利!他将会告诉你他调度的军队人数。

输入输出格式

输入格式:

第一行三个整数n和m,sum。n表示埃及的所有城市个数,m表示Cx大帝开始出征的城市标号,sum表示精锐军队的人数。

以下的n行,第i+1行即为关于埃及编号为i的城市的情报,第一个整数ai表示在此驻扎的军队人数,第二个整数pi表示与此城市连通的城市数目,接下来pi个整数为与其连通的城市编号。

输出格式:

第一行输出Cx大帝要想完成占领埃及的目标的最优攻占城市顺序方案。第二行输出精锐军队剩余的人数,详细格式见输出样例。如军队的人数过少无法使Cx大帝占领埃及,则输出"No way!”

输入输出样例

输入样例#1:

4 3 10
30 0
13 1 1
7 2 4 2
3 1 1
输出样例#1:

3->4->1
6

说明

样例说明:最少需要对付的埃及士兵为40个,而精锐士兵以一敌十,所以最后还有6个存活。 数据保证p1=0。

士兵杀8个死不了,下一次再解决两个就GG了。

对于100%的数据: 2<=n<=50000 pi<=100

 #include <algorithm>
#include <cstdio>
#include <queue> using namespace std; const int M(+);
const int N(+);
const int INF();
int n,s,sum,v,nn,w[N]; int head[N],sumedge;
struct Edge
{
int v,next;
Edge(int v=,int next=):
v(v),next(next){}
}edge[M*N];
void ins(int u,int v)
{
edge[++sumedge]=Edge(v,head[u]);
head[u]=sumedge;
} queue<int>que;
int inq[N],dis[N],pre[N];
void SPFA(int s)
{
for(int i=;i<=n;i++) dis[i]=INF;
dis[s]=w[s];
inq[s]=;
que.push(s);
for(;!que.empty();)
{
int fro=que.front(); que.pop(); inq[fro]=;
for(int i=head[fro];i;i=edge[i].next)
{
v=edge[i].v;
if(dis[v]>dis[fro]+w[v])
{
dis[v]=dis[fro]+w[v];
pre[v]=fro;
if(!inq[v])
{
inq[v]=;
que.push(v);
}
}
}
}
} int main()
{
scanf("%d%d%d",&n,&s,&sum);
for(int i=;i<=n;i++)
{
scanf("%d%d",&w[i],&nn);
for(int j=;j<=nn;j++)
scanf("%d",&v),ins(i,v);
}
int k[N],pos=;
SPFA(s);
sum=sum-dis[]/;
if(sum<) printf("No way!");
else
{
int start=,end=s;
for(;start!=end;start=pre[start])
k[++pos]=start;
printf("%d",s);
for(int i=pos;i>=;i--) printf("->%d",k[i]);
printf("\n%d",sum);
}
return ;
}

洛谷——U10223 Cx大帝远征埃及的更多相关文章

  1. 洛谷 U10223 Cx大帝远征埃及

    题目背景 众所周知,Cx是一个宇宙大犇.Cx能文善武,一直在为大一统的实现而努力奋斗着.Cx将调用他的精锐军队,一个精锐士兵最多可以战胜十个埃及士兵.同时Cx是个爱才的人,他想要制定一份能使在占领埃及 ...

  2. 洛谷 U10206 Cx的治疗

    题目背景 「Cx的故事」众所周知,Cx是一个宇宙大犇.由于Cx在空中花园失足摔下,导致他那蕴含着无穷智慧的大脑受到了严重的损伤,许多的脑神经断裂.于是,Cx的wife(有么?)决定请巴比伦最好的医师治 ...

  3. 洛谷——U10206 Cx的治疗

    https://www.luogu.org/problem/show?pid=U10206 题目背景 「Cx的故事」众所周知,Cx是一个宇宙大犇.由于Cx在空中花园失足摔下,导致他那蕴含着无穷智慧的大 ...

  4. [NOIP提高&洛谷P1024]一元三次方程求解 题解(二分答案)

    [NOIP提高&洛谷P1024]一元三次方程求解 Description 有形如:ax3+bx2+cx+d=0 这样的一个一元三次方程.给出该方程中各项的系数(a,b,c,d 均为实数),并约 ...

  5. 【解题报告】洛谷 P2571 [SCOI2010]传送带

    [解题报告]洛谷 P2571 [SCOI2010]传送带今天无聊,很久没有做过题目了,但是又不想做什么太难的题目,所以就用洛谷随机跳题,跳到了一道题目,感觉好像不是太难. [CSDN链接](https ...

  6. 洛谷 P1724 东风早谷苗

    洛谷 P1724 东风早谷苗 题目描述 在幻想乡,东风谷早苗是以高达控闻名的高中生宅巫女.某一天,早苗终于入手了最新款的钢达姆模型.作为最新的钢达姆,当然有了与以往不同的功能了,那就是它能够自动行走, ...

  7. 浅谈分治 —— 洛谷P1228 地毯填补问题 题解

    如果想看原题网址的话请点击这里:地毯填补问题 原题: 题目描述 相传在一个古老的阿拉伯国家里,有一座宫殿.宫殿里有个四四方方的格子迷宫,国王选择驸马的方法非常特殊,也非常简单:公主就站在其中一个方格子 ...

  8. 洛谷 P4093 [HEOI2016/TJOI2016]序列 CDQ分治优化DP

    洛谷 P4093 [HEOI2016/TJOI2016]序列 CDQ分治优化DP 题目描述 佳媛姐姐过生日的时候,她的小伙伴从某宝上买了一个有趣的玩具送给他. 玩具上有一个数列,数列中某些项的值可能会 ...

  9. 洛谷1640 bzoj1854游戏 匈牙利就是又短又快

    bzoj炸了,靠离线版题目做了两道(过过样例什么的还是轻松的)但是交不了,正巧洛谷有个"大牛分站",就转回洛谷做题了 水题先行,一道傻逼匈牙利 其实本来的思路是搜索然后发现写出来类 ...

随机推荐

  1. 再次学习 Iterator 迭代器 与 Generator 生成器

    Iterator : 返回的结果是:{value, done} function chef(foods){ let i = 0; return { next(){ let done = ( i> ...

  2. 浅述html5和web app

    题外话:最近跟不少产品解释技术术语,比如脚本.数据库.H5等等,我一般会把他们当成稍微了解这些技术的人,用专业的语言描述一遍,然后用通俗的语言解释一遍,最后举例子解释一遍. 肯定有人问,你把流程反过来 ...

  3. IDEA 开发工具在POM.XML文件中增加依赖

    在POM.XML 中使用快捷键 ALT+INSERT 选择第一个,输入关键字即可 选择版本,确认,ok

  4. [Python] Read and Parse Files in Python

    This lesson will teach you how to read the contents of an external file from Python. You will also l ...

  5. Peer To Peer——对等网络

    今年的考试.大问题没怎么出现. 就是考英语第二天的下午,发生网络阻塞的现象,不影响大局.可是事出有因,我们还是须要看看是什么影响到了考生抽题.最后查了一圈,发现其它几场的英语考试听力都是19M大小,而 ...

  6. js插件---画图软件wePaint如何使用(插入背景图片,保存图片,上传图片)

    js插件---画图软件wePaint如何使用(插入背景图片,保存图片,上传图片) 一.总结 一句话总结:万能的wPaint方法,通过不同的参数执行不同的操作.比如清空画布参数传"clear& ...

  7. POJ 2391 Floyd+二分+拆点最大流

    题意: 思路: 先Floyd一遍两两点之间的最短路 二分答案 建图 跑Dinic 只要不像我一样作死#define int long long 估计都没啥事-- 我T到死辣--.. 最后才改过来-- ...

  8. Inversion of Control Containers and the Dependency Injection pattern--Martin Fowler

    原文地址:https://martinfowler.com/articles/injection.html n the Java community there's been a rush of li ...

  9. qrcode length overflow 生成二维码网址长度溢出解决办法

    QRCode.js is javascript library for making QRCode. QRCode.js supports Cross-browser with HTML5 Canva ...

  10. Extjs, 使用GridPanel出现 Layout run failed

    当GridPanel被加入到容器,且容器的layout为vbox时候, 会出现 Layout run failed 后者GridPanel的尺寸没有撑满父容器 网上找到的解决的方法是.要给父容器设置一 ...