P2648 赚钱
P2648 赚钱
对于不知道起点在哪里的最短路,先建立一个超级源点,然后从超级源点跑最长路,并判正环即可。
#include<iostream>
#include<cstdio>
#include<queue>
#include<algorithm>
#include<cmath>
#include<ctime>
#include<set>
#include<cstring>
#define inf 2147483647
#define For(i,a,b) for(register int i=a;i<=b;i++)
#define p(a) putchar(a)
#define g() getchar()
//by war
//2017.20.27
using namespace std;
struct node
{
int n,v;
node *next;
}*e[];
int D,P,C,F;
int x,y,z;
queue<int>q;
bool vis[];
int d[];
int t;
int cnt[];
int ans=-inf;
void in(int &x)
{
int y=;
char c=g();x=;
while(c<''||c>'')
{
if(c=='-')
y=-;
c=g();
}
while(c<=''&&c>='')x=x*+c-'',c=g();
x*=y;
}
void o(int x)
{
if(x<)
{
p('-');
x=-x;
}
if(x>)o(x/);
p(x%+'');
} void push(int x,int y,int v)
{
node *p;
p=new node();
p->n=y;
p->v=v;
if(e[x]==NULL)
e[x]=p;
else
{
p->next=e[x]->next;
e[x]->next=p;
}
} void spfa(int x)
{
node *p;
For(i,,C)
d[i]=-inf;
q.push(x);
cnt[x]++;
while(q.size()>)
{
t=q.front();
vis[t]=true;
p=e[t];
while(p!=NULL)
{
if(d[t]+p->v>d[p->n])
{
d[p->n]=d[t]+p->v;
if(!vis[p->n])
{
q.push(p->n);
cnt[p->n]++;
if(cnt[p->n]>C)
{
puts("orz");
exit();
}
vis[p->n]=true;
}
}
p=p->next;
}
vis[t]=false;
q.pop();
}
} int main()
{
in(D),in(P),in(C),in(F);
For(i,,C)
push(,i,D); For(i,,P)
{
in(x),in(y);
push(x,y,D);
}
For(i,,F)
{
in(x),in(y),in(z);
push(x,y,D-z);
}
spfa();
For(i,,C)
ans=max(ans,d[i]);
o(ans);
return ;
}
P2648 赚钱的更多相关文章
- 洛谷 P2648 赚钱
这道题其实就是求最长路顺便再判断一下正环而已. 这种题肯定要用SPFA的啦,有又正边权(因为最长路所以正边就相当于负边),又是正环(同理,相当于负环),SPFA专治这种问题. 当一个点入队多次的时候, ...
- MMM的一周计划 准备公告
(19.6.17——19.6.22) 目前本周还没有过去所以还会更新 第0周 目前博客更新暂定于 [题目难度颜色见洛谷] 1.绿题以上绝对更新 2.黄题可能更新 3.其他估计不会有更新 准备工作 1. ...
- [Python数据分析]新股破板买入,赚钱几率如何?
这是本人一直比较好奇的问题,网上没搜到,最近在看python数据分析,正好自己动手做一下试试.作者对于python是零基础,需要从头学起. 在写本文时,作者也没有完成这个小分析目标,边学边做吧. == ...
- 程序员的又一春,微信小程序带来的一个赚钱机遇
微信小程序可能是原生的机遇,在程序员面对微信小程序的恐惧中说其实也是我们程序员创业的春天或者挣外快的一个机遇. 为什么这么说呢?且听我慢慢给你分析 成本角度 你想想,会ios开发的可能只会ios,会安 ...
- 【转】微信小程序给程序员带来的可能是一个赚钱的机遇
自上周被微信小程序刷屏之后,这周大家都在谈微信小程序能够带来哪些红利的话题,其实我想从程序员的角度来谈谈,带给我们程序员来的红利,或许是我们程序员创业或者赚钱的机遇. 其实我从<作为移动开发程序 ...
- 你听说过哪些坑人 or 赚钱的歪点子?真是骗局太多,傻子都不够用啊!
又到了骗术揭秘时间了.各位看客您扶稳做好了,来给你深扒一些行业内幕了. 或者说一些投机的思路. 先提前写一些字,相信你们一会评论时候会用的上.直接复制,比较省力. “这年头傻逼太多,骗子明显不够用啊. ...
- 自己赚钱送女友iPhone做惊喜
都说谈恋爱是件费时费力又费钱的事情,你要给女朋友准备各种节日的惊喜,你要给女朋友买她喜欢的裙子,你要请女朋友吃各种美味的食物......但是也别抱怨,一个男人若是连自己女朋友的这点物质要求都满足不了的 ...
- 史上最强大网盘,网络上的赚钱神器【Yunfile网盘】,注册就送8元
YunFile.com,是提供在线存储和文件保存服务最大的网站之一,从2007年创立至今,我们提供免费的和您可以承受的收费服务.这些服务包括高级在线存储/远程备份服务,和先进的上传和下载工具.上百万来 ...
- dp88dp6最靠谱的网络赚钱方法
(本文非原创,转载自http://mt.sohu.com/20160131/n436463696.shtml) 1.卖产品 最靠谱的当然是自己卖产品,可以先去淘宝.阿里巴巴.百度找到一款你认为有前景的 ...
随机推荐
- mysql一次查询,返回多个统计结果
1.sum(if) select sum(if(status=1,1,0)) as s1_count,sum(if(status=2,1,0)) as s2_countfrom order; 2.co ...
- android aysncTask面试解析
- 如何用ModelsimSE仿真IP核-以PLL为例
我们之前介绍了如何使用Modelsim SE进行仿真和利用do文件的仿真方法,但是其中待仿真的模块是我们自己编写的Verilog模块,但是在实际工作中,我们的设计中会经常用到FPGA厂商给我们提供的现 ...
- mono修改配置
当前mono安装目录为:/home/mono,安装成功后修改配置需进入这个路径: cd /home/mono 1.修改TcpBinaryFrameManager.cs文件 cd /home/mono/ ...
- ruia笔记
ruia笔记 loop = loop or asyncio.new_event_loop() get_event_loop()方法仅在同样的线程中生效,如果在一个新线程中,应该用new_event_l ...
- mysql caching_sha2_password异常分析
使用navicat连接mysql报错 解决办法: 通过命令行登录mysql后,输入: alter user 'root'@'localhost' IDENTIFIED WITH mysql_nativ ...
- softlab对接Jenkins工程
在Softlab上对接jenkins工程,必须先在自己的jenkins环境上配置好任务. 1.登陆到jenkins首页,比如http://10.179.175.53:8080/jenkins/ 2.点 ...
- DNS详解: A记录,子域名,CNAME别名,PTR,MX,TXT,SRV,TTL
DNS DNS,Domain Name System或者Domain Name Service(域名系统或者域名服务).域名系统为Internet上的主机分配域名地址和IP地址.由于网络中的计算机都必 ...
- 几个常用的Node方法
1.写入文件 /** * 写入文件 * @param {string} filePath 文件路径 * @param {string} data 文件内容 * @return {none} */ fu ...
- CCF2014032窗口(C语言)
问题描述 在某图形操作系统中,有 N 个窗口,每个窗口都是一个两边与坐标轴分别平行的矩形区域.窗口的边界上的点也属于该窗口.窗口之间有层次的区别,在多于一个窗口重叠的区域里,只会显示位于顶层的窗口里的 ...