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. 第2月第6天 iOS 运行时添加属性和方法

    http://blog.csdn.net/meegomeego/article/details/18356169 第一种:runtime.h里的方法 BOOL class_addProperty(Cl ...

  2. 使用ajax技术实现txt弹出在页面上

    使用ajax技术实现txt弹出在页面上   使用ajax技术实现点击按钮,将TXT文本里的内容通过弹出框显示到页面上 /*事件会在页面加载完成后触发.*/ <script> window. ...

  3. 坑爹的私有API

    iOS私有API扫描工作总结 背景 苹果提供的iOS开发框架分PrivateFramework和Framework,PrivateFramework下的库是绝对不允许在提交的iOS应用中使用的,只允许 ...

  4. java.lang.UnsatisfiedLinkError: Couldn't load BaiduMapSDK 的解决方法

    遇到找不到so的同学们可以先从以下几个方面来检查问题: 1.so的名字是不是被修改了?我们SDK的so名字是固定的,如果您自行对它进行了重命名操作,那肯定是没法找到so的.2.so放置位置不对.so需 ...

  5. struts2 自定义校验规则

    自定义校验规则:(了解) 在Struts2自定义校验规则: 1.实现一个Validator 接口. 2.一般开发中继承ValidatorSupport 或者 FieldValidatorSupport ...

  6. C++虚函数浅探

    C++中和虚函数(Virtual Function)密切相关的概念是"动态绑定"(Dynamic Binding),与之相对的概念是"静态绑定"(Static ...

  7. go:windows下用sublime Text搭建go语言开发环境

      一.安装   1.安装go    go安装包地址:http://pan.baidu.com/s/1hq1mrDM(进入下图中箭头所示目录中下载对应版本) * 注意go的安装路径不能包含中文    ...

  8. 【XLL 框架库函数】 TempActiveCell/TempActiveCell12

    这两个函数创建 XLOPER/XLOPER12 ,包含了当前激活工作表上的单元格引用. LPXLOPER TempActiveCell(WORD row, BYTE col); LPXLOPER12 ...

  9. 数据库DBA(3年以内需求)

    1.DBA工作:日常维护,备份及恢复,系统安装,补丁应用,健康检查及优化,故障处理; 2.精通sql语句.视图存储过程.函数的编写.触发器; 3.精通data guard/RAC,能顺利配置和管理da ...

  10. sql 删除表中某字段的重复数据

    重复字段:BarCode SELECT * FROM dbo.AssetBarCode WHERE BarCode IN (SELECT BarCode FROM dbo.AssetBarCode G ...