POJ 1065(贪心)
来源:互联网 发布:ps做gif导出设置优化 编辑:程序博客网 时间:2024/04/29 18:27
题目链接 http://poj.org/problem?id=1065
题目意思非常简单,有一堆方木需要处理,处理准备时间如下:第一块方木需要时间为1;如果当前处理方木的长宽都大于等于前一块方木,那么准备时间为0。
此题wrong answer了一次,主要是先前的思路是错误的。先前的想法是,按照l进行排序,然后再统计w的逆序个数;同时按照w排序,再统计l逆序的个数。最后,取其中的最小值。后来,发现这种思路是严重有问题的!
其实这个题十分简单,就是将所有的数据分成几个集合,每一个集合都是升序的,然后统计集合最小的个数。
代码如下:
#include <stdio.h>#include <iostream>#include <algorithm>using namespace std;typedef struct{ int l,w,vi;}point;point p[5005];bool cmp1(const point &p1,const point &p2){ if(p1.l==p2.l) return p1.w<p2.w; return p1.l<p2.l;}void solve(){ int n,i,j,te,sum=0; scanf("%d",&n); for(i=0;i<n;i++){ scanf("%d %d",&p[i].l,&p[i].w); p[i].vi=0; } sort(p,p+n,cmp1); for(i=0;i<n;i++) { if(p[i].vi==0) { sum++;p[i].vi=1; te=i; for(j=te+1;j<n;j++) if(p[j].vi==0 && p[te].l<=p[j].l) { te=j; p[j].vi=1; } } } printf("%d\n",sum);}int main(){ int t; scanf("%d",&t); while(t--) solve(); return 0;}
- POJ 1065(贪心)
- poj 1065 Wooden Sticks(贪心算法)
- poj 1065 Wooden Sticks (贪心)
- POJ 1065 贪心算法(Dilworth定理)
- POJ 1065 (贪心)
- POJ 1065 贪心
- POJ 1065 (贪心法)
- 【贪心】POJ 1065
- POJ 1065 贪心
- POJ 1065 贪心
- POJ 1328(贪心)
- POJ 1818(贪心)
- POJ 1477(贪心)
- poj 2054(贪心)
- POJ 1230(贪心)
- poj 3253 (贪心)
- POJ-1694(贪心)
- poj 1328(贪心)
- Oracle的网络监听配置
- Windows驱动开发工具包下载地址...
- Hibernate注解
- Release Notes --版本记录
- acosh函数
- POJ 1065(贪心)
- Hibernate事物管理简述
- 格式化输出数字,比如:小数取两位输出等
- Qt拖动鼠标移动窗体中的内容
- acos 函数
- MFC退出窗口提示
- hibernate怎么在控制台查看自动生成的建表语句
- hdu 4358 Boring counting
- Windows xp/7 安装Git