接水问题(NOIP 2010 PJT2)】的更多相关文章

这个的思路就是让各个水龙头所用的时间尽可能地接近,可以先向优先队列中推入前m个数,由于开的是小根堆最小的数在前面我们把它拿出来,加上下一个人所需的时间.如此反复,直到都接完水,最大值就是答案. #include<bits/stdc++.h> using namespace std; const int N=1e4+10; int n,m; int w[N]={0}; priority_queue<int,vector<int>,greater<int >>…
时间限制: 1 s    空间限制: 128000 KB 题目描述 Description 学校里有一个水房,水房里一共装有m 个龙头可供同学们打开水,每个龙头每秒钟的供水量相等,均为1. 现在有n 名同学准备接水,他们的初始接水顺序已经确定.将这些同学按接水顺序从1到n 编号,i 号同学的接水量为wi.接水开始时,1 到m 号同学各占一个水龙头,并同时打开水龙头接水.当其中某名同学j 完成其接水量要求wj 后,下一名排队等候接水的同学k马上接替j 同学的位置开始接水.这个换人的过程是瞬间完成的…
P1525 关押罪犯 513通过 1.4K提交 题目提供者该用户不存在 标签图论并查集NOIp提高组2010 难度普及+/提高 提交该题 讨论 题解 记录 最新讨论 咳咳.竟MLE了. 囧.运行时错误,错误编号-… 点2是何方神圣? 题目描述 S 城现有两座监狱,一共关押着N 名罪犯,编号分别为1~N.他们之间的关系自然也极不和谐.很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突.我们用“怨气值”(一个正整数值)来表示某两名罪犯之间的仇恨程度,怨气值越大,则这两名罪犯之间的积怨越多.…
唔..NOIP2010比较简单,总体感觉不错. Problem 1: 机器翻译 水题,队列的简单应用. 读入时判断是否在内存中,可以用hash优化.如果不在内存中push进内存,放不下了pop header不用说了.上代码(未hash优化) //Bazinga! #include "cstdio" int sum,i,m,n; struct Q{ ],i; void push(int n){ qub[tail]=n; ++tail; if(len==m){ ++head; }else{…
考试的时候写了个dfs找出来了,最后处理的时候想到了贪心,但是正确性没有想通.然后想了想动规,也没想通.最后没办法,用状态的话用了个状压,弄了40分. 正解是bfs+贪心.Dfs也有过的. 下面题解引用自他人: 整体的思路是这样的: 从第一层的每一个点开始往下做一次搜索,每一次搜索可以覆盖到最后一行的一段,我们就可以把它看成是一条线段: 做完搜索之后我们就得到了一坨线段..然后这就变成了一个线段覆盖问题,用最少的线段来把最后一行盖满,当然也存在无论如何都盖不满的情况.. 下面来说说线段覆盖的思路…
tags: NOIP 并查集 动态规划 搜索 categories: 信息学竞赛 总结 机器翻译 乌龟棋 关押罪犯 引水入城 机器翻译 Solution 维护一个队列, 每次从词典中查词时将单词加入队列(代表内存), 当内存满的时候, 从队首弹出一个代表清空最早的单词. Code #include<iostream> #include<cstdio> #include<queue> #define N 1005 using namespace std; queue<…
数位dp解水题 luogu1179 dp[i][j]表示 有i位,且首位是j(包括0) 的 ‘2’的个数 dp[i][j]={ Σ(dp[i-1][k]),j!=2; Σ(dp[i-1][k])+val[i],j!=2; }其中val[i]为,十进制下,第i位的权值,在这里可以当作 如果 j是2 那会多计数几次来使用 令 work(x) 表示 0~x-1 中 '2' 的个数目标 work(r+1)-work(l);work()注意 在累加dp[i][j]的同时,统计之前出现了几次‘2’,记为t:…
题目传送门 感想:相信自己的想法!继续挖掘! 读完题目后:看到的最大值最小?二分答案啊!再仔细一看:wi达到了1e9,二分可能费点劲.(其实真的是可以的)而且check函数貌似并没有什么行之有效的写法.继续往下想. 再读读,想到我们肯定尽量不想让有仇恨的犯人关在一起,所以每次就把有仇的敌人用并查集并在一起(其实想法是挺好的,到这一步出现了偏差). 结果...然后就没有结果了! 唉其实应该自己再多想想的嘛...还是去看了@Chemist和@new2zy两位巨佬的题解.主要有两种方法. 法一:二分图…
/* 二分图染色版本 两个监狱对应二部图的两部分 在给定的怨气值里二分 对于每一个Ci 进行染色判断是否合法 染色的时候 如果这条边的ci > Ci 这两个人就带分开 即染成不同的颜色 如果染色到某两个点颜色相同且怨气值>Ci 这个Ci就不合法 二分直到最后答案 */ #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #define maxn 100…
搜索+贪心. 参考博客:http://blog.sina.com.cn/s/blog_8442ec3b0100xib1.html 主要是要看出来,如果有解的话,每个沿湖城市能够流到的范围是连续的区间...然后1遍dfs判断有无解,2遍确定区间,最后排序贪心. 直觉上来说,如果流到的区域中间是断的,那么中间的地势一定比两边高,从其他地方也流不到. (理论上是应该bfs的= =) #include <cstdio> #include <algorithm> #include <c…