POJ 1456 Supermarket
来源:互联网 发布:越南旅游 知乎 编辑:程序博客网 时间:2024/04/30 15:21
这道题,并查集+贪心。
用f [ i ] 表示 小于等于 i 的最大的可用的天数。
先将商品按价值排序,然后从价值最高的开始先放,从截止日期开始往前放,即放在 f [ deadline ] 的地方。
int n;int f[10001];struct goods{int value,deadline;bool operator <(const goods&b)const{return value<b.value;}}good[10001];定义了结构体,重载小于运算符,方便排序。
int get(int a){if(a<1) return 0;int r=a;while(r!=f[r]){r=f[r];}return f[a]=r;}
get函数,查找小于等于a的最大空缺位置。
int main(void){while(scanf("%d",&n)!=EOF){for(int i=1;i<=10000;i++) f[i]=i; //并查集初始化 int pi,di;FOR(i,n) {scanf("%d%d",&pi,&di);good[i].value=pi;good[i].deadline=di;}sort(good+1,good+n+1);//排序 int ANS=0;for(int i=n;i>0;--i){int pos=get(good[i].deadline);f[pos]=get(pos-1);if(pos) ANS+=good[i].value;//如果找到位置放,就加上它的价值。 }cout<<ANS<<endl;}return 0;}
0 0
- poj 1456 supermarket
- POJ-1456 Supermarket【贪心】
- poj 1456 Supermarket
- Supermarket poj 1456
- POJ 1456 Supermarket
- POJ 1456 Supermarket
- POJ-1456-Supermarket
- poj 1456 Supermarket
- poj 1456 Supermarket
- POJ - 1456 Supermarket
- POJ 1456 Supermarket
- POJ 1456 Supermarket
- POJ 1456 Supermarket
- poj 1456 Supermarket
- 【POJ 1456】Supermarket
- poj 1456 Supermarket
- POJ 1456 Supermarket
- poj 1456 Supermarket
- 编程之美资格赛 大神与三位小伙伴
- 设置分割窗口背景色的简单方法
- DNS使用的是TCP协议还是UDP协议?
- 黑马程序员_java开发工具下载
- 数据持久化 coredata、sqlite、fmdb和sqlitepersistentobject
- POJ 1456 Supermarket
- 路考
- 8球胜负 2537
- 包含多集合的json反序列化
- 使用eclipse/STS maven遇到的问题
- Letter Combinations of a Phone Number
- WM_DRAWITEM与DrawItem()的讨论
- 路考口诀
- 数据库未打开错误