【拓扑排序】【DP】奖金(ssl 1325)

奖金

ssl 1325

题目大意:

有n个人,某个人要比另外一个人的工资高(工资最低为100,最少多1元),问最少发多少工资

原题:

题目描述

由于无敌的凡凡在2005年世界英俊帅气男总决选中胜出,Yali Company总经理Mr.Z心情好,决定给每位员工发奖金。公司决定以每个人本年在公司的贡献为标准来计算他们得到奖金的多少。
于是Mr.Z下令召开m方会谈。每位参加会谈的代表提出了自己的意见:“我认为员工a的奖金应该比b高!”Mr.Z决定要找出一种奖金方案,满足各位代表的意见,且同时使得总奖金数最少。每位员工奖金最少为100元。

输入

两个整数n,m,表示员工总数和代表数;
以下m行,每行2个整数a,b,表示某个代表认为第a号员工奖金应该比第b号员工高。

输出

若无法找到合法方案,则输出“-1”;否则输出一个数表示最少总奖金。

输出样例

2 1
1 2

输入样例

201

数据范围:

80%的数据满足n<=1000,m<=2000;
100%的数据满足n<=10000,m<=20000。

解题思路:

这就是拓扑排序,先按顺序拓扑排序一遍,中途顺便DP(以100为低值),因为要求最小所以一定是上一个数+1,然后有多个条件是就要求最大的

代码:

#include<queue>
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
int n,m,x,y,h,tot,sum,rd[10500],head[10500],ans[10500];
struct rec
{int to,next;
}a[20500];
void topsort()//拓扑排序
{queue<int>d;for (int i=1;i<=n;++i)if (!rd[i]) d.push(i),ans[i]=100;//入度为0的while(!d.empty()){h=d.front();d.pop();for (int i=head[h];i;i=a[i].next){rd[a[i].to]--;ans[a[i].to]=max(ans[h]+1,ans[a[i].to]);//取最大if (!rd[a[i].to])//入度为0{rd[a[i].to]--;d.push(a[i].to);}}}
}
int main()
{scanf("%d %d",&n,&m);for (int i=1;i<=m;++i){scanf("%d %d",&x,&y);a[++tot].to=x;a[tot].next=head[y];head[y]=tot;rd[x]++;}topsort();for (int i=1;i<=n;++i)if (rd[i]<=0) sum+=ans[i];//符合else{sum=-1;//存在环break;}printf("%d",sum);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/320706.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网络流24题

网络流24题 说在前边 一直没有完整的刷过这套题&#xff0c;打算最近一点点刷掉通过《最小割模型在信息学竞赛中的应用》及《浅析一类最小割问题》学习常规建图技巧飞行员配对方案问题 二分图最大匹配 #include <bits/stdc.h> typedef long long ll; const int inf 0x3f…

P3959-宝藏【模拟退火】

正题 题目链接:https://www.luogu.com.cn/problem/P3959 题目大意 nnn个点&#xff0c;mmm条边&#xff0c;求一棵有根生成树权值最小。对于一条边(fa,x,w)(fa,x,w)(fa,x,w)会产生权值depfa∗wdep_{fa}*wdepfa​∗w。 解题思路 我们模拟退火每次随机一个序列&#xff0c;然后…

ASP.NET Core Web API 集成测试中使用 Bearer Token

在 ASP.NET Core Web API 集成测试一文中, 我介绍了ASP.NET Core Web API的集成测试. 在那里我使用了测试专用的Startup类, 里面的配置和开发时有一些区别, 例如里面去掉了用户身份验证相关的中间件.但是有些被测试的行为里面需要用到身份/授权信息.所以本文就介绍一下在API集成…

桐桐的雷达

桐桐的雷达 题目大意&#xff1a; 有一堆数字&#xff0c;并给出一个范围&#xff0c;判断不在范围内的数字是否多过10%&#xff0c;若不多过&#xff0c;那输出范围内数字的平均值 原题&#xff1a; 题目描述 桐桐在去广州的路上&#xff0c;对高速公路上的测速雷达产生了…

Codeforces Round #497 (Div. 1)

Codeforces Round #497 (Div. 1) A. Reorder the Array 先满足数值较小的位置&#xff0c;每次找恰好大于这个值的一个值即可。 #include <bits/stdc.h> #define rep(i,a,b) for(int ia;i<b;i) #define pb push_back typedef long long ll; const int N 100200; usin…

jzoj6824-[2020.10.17提高组模拟]英雄联盟【期望】

正题 题目大意 开始暴击率为xxx&#xff0c;每次失败后都会增加xxx&#xff0c;成功后重置&#xff0c;然后求攻击1010610^{10^6}10106次后的暴击次数除以1010610^{10^6}10106 解题思路 定义ansansans为期望攻击多少次后暴击&#xff0c;然后答案为1ans\frac{1}{ans}ans1​。…

【模拟】桐桐的游戏

桐桐的游戏 题目大意&#xff1a; 有一个用数组成的环要从1跳到z&#xff08;有些点不能跳&#xff09;&#xff0c;每次跳的步数最少有多少步 原题&#xff1a; 题目描述 桐桐最近在玩一个跳棋游戏&#xff0c;规则是&#xff1a;有个圆圈&#xff0c;分成N等分&#xff…

ASP.NET Core 应用发布与部署指南

一、前言本篇主要包含哪些内容&#xff1f;将项目发布到本地目录将项目传输到服务器并配置启动&开机自动启动将Nginx作为访问入口&#xff0c;配置反向代理本篇环境信息开发环境&#xff1a;用途工具&版本操作系统Windows 10开发工具Visual Studio 2017&#xff08;15.…

jzoj6826-[2020.10.17提高组模拟]隔膜【博弈论】

正题 题目大意 n∗nn*nn∗n的矩形&#xff0c;每一个人操作时如果棋盘上有一个k∗kk*kk∗k的矩形空地就可以选择一个点堵上。如果没有就失败了&#xff0c;求必胜方。 解题思路 如果场地上有一个位置堵上后即可堵上所有k∗kk*kk∗k的矩形那么这个点被堵住后就赢了&#xff0c;…

牛客网暑期ACM多校训练营(第一场)

牛客网暑期ACM多校训练营&#xff08;第一场&#xff09; A. Monotonic Matrix 考虑0和1的分界线&#xff0c;1和2的分界线&#xff0c;发现问题可以转化为两条不互相穿过的路径的方案数&#xff08;可重叠&#xff09;&#xff0c;题解的做法就是把一条路径斜着平移&#xff0…

2014 ACM/ICPC Asia Regional Xi'an Online

2014西安网络赛 A. Post Robot 把每种单词都kmp跑一遍&#xff0c;顺序输出即可 #include <cstdio> #include <iostream> #include <algorithm> #include <map> #include <cstring> #include <cmath> #include <queue> #include <…

MongoDB发布4.0版本,支持ACID事务

MongoDB最近发布了最新的4.0版本。毫无疑问&#xff0c;这一版本的主要特性是支持多文档ACID事务。MongoDB向与关系型数据库产品的融合迈出了一大步&#xff0c;现在支持会话的概念&#xff0c;并可以使用start_transaction()和commit_transaction()方法将多个数据库命令包含在…

P5491-[模板]二次剩余

正题 题目链接:https://www.luogu.com.cn/problem/P5491 题目大意 求解x2N(modP)x^2N(mod\ \ P)x2N(mod P) 解题思路 若aaa在模ppp意义下可以开根那么aaa就是ppp的二次剩余&#xff0c;定义 (ap){1(a是p的二次剩余)−1(a是p的二次非剩余)0(p∣a)\binom{a}{p}\left\{\begin{…

【递归】桐桐的递归函数

桐桐的递归函数 题目大意&#xff1a; 有一个函数&#xff0c;让你照着打 原题&#xff1a; 题目描述 桐桐经常找一些很有趣的数学书来阅读以增长自己的数学知识。一天&#xff0c;他偶然发现一个递归函数w&#xff08;a&#xff0c;b&#xff0c;c&#xff09;有以下性质…

分享我编程工作经历及对软件开发前景的看法

本人一直从事互联网行业&#xff0c;熟练C#、javascript,熟悉C\C,JAVA,php,object-c,熟练的开发工具有Visual Studio,数据库是MS SQL SERVER。这两天实在是无聊&#xff0c;回忆一下本人的工作经历&#xff0c;一路走来很辛苦&#xff0c;很坎坷&#xff0c;现在都快40岁了&…

P4026-[SHOI2008]循环的债务【dp】

正题 题目链接:https://www.luogu.com.cn/problem/P4026 题目大意 333个人&#xff0c;有一些面值为100,50,20,10,5,1100,50,20,10,5,1100,50,20,10,5,1的钱&#xff0c;一些人欠一些人钱&#xff0c;求最少交换多少张钞票可以还清。 解题思路 我们设fi,j,kf_{i,j,k}fi,j,k​…

【模拟】桐桐的新闻系统

桐桐的新闻系统 题目大意&#xff1a; 有n个人&#xff0c;每个人有自己的ID和收新闻的间隔&#xff0c;问前k次发送新闻是分别发给谁的 原题&#xff1a; 题目描述 桐桐为期末的电脑作业设计一套新闻系统&#xff0c;他把这套系统称为Argus。 使用这套系统的用户可以向这…

实体类的动态生成(三)

前言在 .NET 中主要有两种动态生成并编译的方式&#xff0c;一种是通过 System.Linq.Expressions 命名空间中的 LambdaExpression 类的 CompileToMethod(...) 方法&#xff0c;但是这种方法只支持动态编译到静态方法&#xff0c;因为这个限制我们只能放弃它而采用 Emitting 生成…

牛客网暑期ACM多校训练营(第三场)

牛客网暑期ACM多校训练营&#xff08;第三场&#xff09; A. PACM Team 01背包&#xff0c;输出方案&#xff0c;用bool存每种状态下用的哪一个物品&#xff0c;卡内存。官方题解上&#xff0c;说用char或者short就行了。还有一种做法是把用的物品压成一个int。 #include <b…

P4096-[HEOI2013]Eden的博弈树

正题 题目链接:https://www.luogu.com.cn/problem/P4096 题目大意 一个博弈树&#xff0c;黑方先手。定义一个最小的叶子节点集为黑胜状态为黑方胜利集合&#xff0c;白色亦然。求所有既属于黑方胜利集合有属于白方胜利集合的点。 解题思路 设fi,0/1f_{i,0/1}fi,0/1​表示ii…