SOJ 13983. Milk Scheduling

这是比赛题,还是作死的我最讨厌的英文题,题目大意就是有n头奶牛,要在喂奶截止时间前给他喂奶并得到相应的含量的牛奶。
一开始的想法就是挑选截止日期的最大产奶量的那头牛喂养,后来果不其然的WA了。
空闲的时间也可以给奶牛喂奶啥的....bug不要太多。
于是改来改去了,期间又WA了几发,总算是A掉了,但是代码也是要多搓有多搓,估计除了我自己没人看得懂。
所以后来选用了优先队列,STL的东西用顺手了还是蛮好用的。还用了pair类。
思路从截止日期最大的倒着推回来,可以把没过截止日期的放入队列里选择。每次选择最优。优先队列访问顶元素得到最优解加起来。
一开始是没想过这种情况,比如说时间为t时候,有正好t1时刻的g1和截止日期为t2(t2>t1)时刻的g2(t2时刻最大的不是gi),而g2>g1此时就选g2。
/**
测试实例:
4
10 3
7 5
8 1
2 1 25
**/
#include<cstdio>
#include<queue>
#include<algorithm>
#define MAXN 10000
using namespace std;
typedef pair<int ,int> P;
priority_queue<int> q;
int n,ans;
P a[MAXN+10];
int main()
{
while(~scanf("%d",&n))
{
for(int i=1;i<=n;i++)
scanf("%d%d",&a[i].second,&a[i].first);
sort(a+1,a+1+n); //sort对pair先排first(本题中的d)从小到大,再排second(本题中g)从小到大
for(int t=a[n].first,j=n;t>=1;t--) //倒着选
{
for(;j>=1&&t<=a[j].first;j--) //将当前所有解入队列,排过序。
q.push(a[j].second);
if(!q.empty())
{
ans+=q.top(); //选择最优解
q.pop(); //已选择则扔出去233333
}
}
printf("%d\n",ans);
}
return 0;
}

【贪心】SOJ 13983的更多相关文章

  1. Soj题目分类

    -----------------------------最优化问题------------------------------------- ----------------------常规动态规划 ...

  2. SOJ 1685:chopsticks(dp)

    题目链接 说实话挺喜欢soj的界面,简简单单,没有多余的东西hhh(但是简单到连内存限制,时间限制都看不到了. 题意是有个“奇葩”的主人公,吃饭要用三根筷子.两根短的一根长的. 现在给你n根筷子,要在 ...

  3. BZOJ 1692: [Usaco2007 Dec]队列变换 [后缀数组 贪心]

    1692: [Usaco2007 Dec]队列变换 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 1383  Solved: 582[Submit][St ...

  4. HDOJ 1051. Wooden Sticks 贪心 结构体排序

    Wooden Sticks Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) To ...

  5. HDOJ 1009. Fat Mouse' Trade 贪心 结构体排序

    FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  6. BZOJ 1691: [Usaco2007 Dec]挑剔的美食家 [treap 贪心]

    1691: [Usaco2007 Dec]挑剔的美食家 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 786  Solved: 391[Submit][S ...

  7. 【Codeforces 738D】Sea Battle(贪心)

    http://codeforces.com/contest/738/problem/D Galya is playing one-dimensional Sea Battle on a 1 × n g ...

  8. 【BZOJ-4245】OR-XOR 按位贪心

    4245: [ONTAK2015]OR-XOR Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 486  Solved: 266[Submit][Sta ...

  9. code vs 1098 均分纸牌(贪心)

    1098 均分纸牌 2002年NOIP全国联赛提高组  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解   题目描述 Description 有 N 堆纸牌 ...

随机推荐

  1. Burpsuite 重要插件

    1.Gason:Burpsuite-sqlmap插件,该插件可以让burp与sqlmap轻松对接,深度发掘SQL注入漏洞. 2.fuzzdb:fuzzing测试数据库,开源,深度测试SQL注入,xss ...

  2. ActiveMQ消息存储持久化

    --------------------------------------------------------------------------------------------------- ...

  3. bzoj1441 MIN

    Description 给出n个数(A1…An)现求一组整数序列(X1…Xn)使得S=A1*X1+…An*Xn>0,且S的值最小 Input 第一行给出数字N,代表有N个数 下面一行给出N个数 ...

  4. nyoj 下三角矩阵

    Problem A 下三角矩阵 时间限制:1000 ms  |  内存限制:65535 KB 描述 给定一个由0和1组成的矩阵.只允许交换相邻的两行,要把矩阵转化成下三角矩阵(主对角线上方的元素都是0 ...

  5. PHP获取指定月份的第一天开始和最后一天结束的时间戳函数

    <?php /** * 获取指定月份的第一天开始和最后一天结束的时间戳 * * @param int $y 年份 $m 月份 * @return array(本月开始时间,本月结束时间) */ ...

  6. phpcms专题路径修改

    两个文件改三处就可以了,既可以后台点击专题列表链接问题,也可以解决生成专题多一个“/”的问题. 1.\phpcms\modules\special\classes\html.class.php大概第1 ...

  7. jsonp 自己写的一个例子

    function test(){ alert("13"); $.ajax({ type : "GET", async:false, url : "ht ...

  8. word20161206

    D-channel / D 信道 DACL, discretionary access control list / 自由访问控制列表 daily backup / 每日备份 Data Communi ...

  9. JS 删除对象属性

    updateNode: function(data) { if(data) { this.root[data.id] = data; } }, removeNodes: function(idsArr ...

  10. mysql存储过程中 乱码问题解决办法

    中文乱码无论在何时都是一个头疼的问题,mysql的存储过程参数也同样存在这个问题.1.直接使用insert into语句没问题,能够正常插入汉字.2.把insert into语句移到Procedure ...