poj 1065 简单的贪心算法
题意大概是:有一组木头需要处理,每块木头有长度,重量两个属性,处理的前一块木头长len,重wei,当下一块木头的len1,与wei1满足:len1>len&&wei1>wei 时不需要准备时间,否则需要1分钟的准备时间,问最短的准备时间。
一开始的思路是将所有木头按照长度,重量两个属性从小到大排序后,找逆序数+1。
后来发现这样的思路是有问题的,比如排序后木头的重量是:1,2,3,4,5,6,4,7,8,9,10,9
如果按寻找逆序数的方法则需要分成
1,2,3,4,5,6
4,7,8,9,10
9
三组。需要3分钟准备。
争确的分组方法应该是:
1,2,3,4,5,6,7,8,9,10
4,9
两组,需要2分钟准备。
另外说一下qsort的comp函数写法,
int comp(const void * a,const void * b){
if((*(wooden *)a).len>(*(wooden*)b).len){
return ;
}
else if((*(wooden *)a).len==(*(wooden*)b).len&&(*(wooden*)a).wei>(*(wooden*)b).wei){
return ;
}
else if((*(wooden *)a).len==(*(wooden*)b).len&&(*(wooden*)a).wei==(*(wooden*)b).wei){
return ;
}
else{
return -;
}
/*if((*(wooden *)a).len==(*(wooden *)b).len){
return ((*(wooden *)a).wei-(* (wooden *)b).wei);
}
else{
return ((*(wooden *)a).len-(*(wooden *)b).len);
}*/
}
参数必须是const void * 类型。
如果满足>关系则返回1 =关系返回0 <返回-1
因此可以自己定制大于小于条件。
我因为没有考虑到所有的大于小于关系wa了无数次,最后才发现竟然是因为排序问题。
其实注释中的写法更简洁,但是我还是喜欢非注释中的写法。
下面是ac代码:
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<stdlib.h>
typedef struct node {
int len;
int wei;
int vi;
}wooden; int comp(const void * a,const void * b){
if((*(wooden *)a).len>(*(wooden*)b).len){
return ;
}
else if((*(wooden *)a).len==(*(wooden*)b).len&&(*(wooden*)a).wei>(*(wooden*)b).wei){
return ;
}
else if((*(wooden *)a).len==(*(wooden*)b).len&&(*(wooden*)a).wei==(*(wooden*)b).wei){
return ;
}
else{
return -;
}
/*if((*(wooden *)a).len==(*(wooden *)b).len){
return ((*(wooden *)a).wei-(* (wooden *)b).wei);
}
else{
return ((*(wooden *)a).len-(*(wooden *)b).len);
}*/
}
int main(){
int T,n,i,j,num,first;
wooden woo[];
scanf("%d",&T);
while(T--){
scanf("%d",&n);
if(n==){
printf("0\n");
continue;
}
for(i=;i<n;i++){
scanf("%d %d",&woo[i].len,&woo[i].wei);
woo[i].vi=;
}
qsort(woo,n,sizeof(woo[]),comp);
num=;
for(i=;i<n;i++){
if(woo[i].vi==){
num++;
woo[i].vi=;
first=woo[i].wei;
for(j=i+;j<n;j++){
if(woo[j].wei>=first&&woo[j].vi==){
woo[j].vi=;
first=woo[j].wei;
}
}
}
}
printf("%d\n",num);
}
return ;
}
poj 1065 简单的贪心算法的更多相关文章
- poj 1088 滑雪(贪心算法)
思想: (贪心算法 ,看到题目是中文才做的) 先对数组中的数据进行排序,从最小的数据计算 当前的顶点的可以滑行的最大值=max(周围可达的顶点的可以滑行的最大值)+1 这样计算最后产生的路径肯定是最大 ...
- HDOJ 2037简单的贪心算法
代码: #include<iostream> using namespace std; int main() { int n,s,t1[100],t2[100],i,t,j; while( ...
- poj 1065 Wooden Sticks_贪心
题意:将木棍放在机器里处理,第一根需要一分钟,剩余的如果大于等于前边放入的长度和重量,就不用费时间,否则需要一分钟,计算给出一组数的最少时间. 思路:先按长度排序,相同在比较重量,然后按顺序比较得出结 ...
- POJ 1065 Wooden Sticks#贪心+qsort用法
(- ̄▽ ̄)-* 这道题用到了cstdlib库的qsort()函数: 用法链接:http://www.cnblogs.com/syxchina/archive/2010/07/29/2197382.h ...
- poj 3045 叠罗汉问题 贪心算法
题意:将n头牛叠起来,每头牛的力气 s体重 w 倒下的风险是身上的牛的体重的和减去s 求最稳的罗汉倒下去风险的最大值 思路: 将s+w最大的放在下面,从上往下看 解决问题的代码: #include& ...
- POJ 1328 Radar Installation 贪心算法
Description Assume the coasting is an infinite straight line. Land is in one side of coasting, sea i ...
- ACM_ICPC hdu-2111(简单贪心算法)
一道非常简单的贪心算法,但是要注意输入的价值是单位体积的价值,并不是这个物品的总价值!#include <iostream> #include <stdio.h> #inclu ...
- hdu4310 - Hero - 简单的贪心
2017-08-26 15:25:22 writer:pprp 题意描述: • 1 VS n对战,回合制(你打他们一下,需要受到他们所有存活人的攻击)• 你的血量无上限,攻击力为1• 对手血量及攻击 ...
- POJ 1065 Wooden Sticks / hdu 1257 最少拦截系统 DP 贪心
参考链接:http://blog.csdn.net/xiaohuan1991/article/details/6956629 (HDU 1257 解题思路一样就不继续讲解) POJ 1065题意:给你 ...
随机推荐
- SemaphoreFullException when checking user role via ASP.NET membership
将指定的计数添加到该信号量中会导致其超过最大计数 This issue was fixed by restarting ASP.NET Development Server on windows ta ...
- MySQLBackup 使用说明
001.mysqlbackup介绍: mysqlbackup是一个热备份工具.也就是说它不像mysqldump那样给表上一个全局锁,由于mysqldump上了这个锁,所以就造成客户端只能对 数据库进行 ...
- 混合使用Azure LB和ILB访问相同web服务(2)
那么现在开始,我们配置下两台WEB服务器的Internal Load balancer: 打开Powershell,检查当前两台虚拟机的端点配置: Get-AzureVM -ServiceName ...
- python学习day7
目录 一.反射 二.socket 三.socketserver 一.反射 python中的反射功能是由以下四个内置函数提供:hasattr.getattr.setattr.delattr,改四个函数分 ...
- [转]linux下IPTABLES配置详解
如果你的IPTABLES基础知识还不了解,建议先去看看.开始配置我们来配置一个filter表的防火墙.(1)查看本机关于IPTABLES的设置情况[root@tp ~]# iptables -L -n ...
- 如何优化pom依赖项?
Maven工程通过pom.xml里的<dependency>来定义依赖项.当然,我们不会少定义依赖项,否则编译不通过.不过,如果我们多定义了依赖项虽然不会造成灾难,但可能会造成一些问题,比 ...
- 构造函时和this指针
通常this指针在对象构造完毕后才完全生成,而在构造函数执行过程中,对象还没有完全生成,所以this指针也是没有完全生成的,在构造函数中使用this指针会存在问题,应该尽量避免. 构造函数中可以访问对 ...
- mongodb导出命令
./mongoexport -d admin -c col -o col.json 找到了 导出所有数据库的 http://www.jb51.net/article/52498.htm
- BZOJ 3181([Coci2012]BROJ-最小质因子为p的第k小素数)
3181: [Coci2012]BROJ Time Limit: 10 Sec Memory Limit: 64 MB Submit: 26 Solved: 7 [ Submit][ Stat ...
- ok6410驱动usb摄像头
为了做图像处理,须要用摄像头,搜到实验室仅仅有一个摄像头,是国安的.详细參数在终端中看到: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdGluZzEyM ...