当前位置: 首页 > news >正文

HDU中的贪心算法

//贪心算法的基本步骤
//1、从问题的某个初始解出发。
//2、采用循环语句,当可以向求解目标前进一步时,就根据局部最优策略,
// 得到一个部分解,缩小问题的范围或规模。
//3、将所有部分解综合起来,得到问题的最终解。

题目:http://acm.hdu.edu.cn/problemclass.php?id=29


//1050 Moving Tables
//1 如果没有交叉,则总时间为 1 * 10
//如果有交叉一层,则总时间为 2 * 10
//如果交叉n层,则总时间为 (n + 1)* 10

#include <iostream> 
using namespace std; 
int main() 
{ 
int t,i,j,N,P[200];
int s,d,temp,k,min; 
cin>>t; 
for(i=0;i<t;i++) 
{ 
   for(j=0;j<200;j++) 
    P[j]=0; 
   cin>>N; 
   for(j=0;j<N;j++) 
   { 
    cin>>s>>d; 
    s=(s-1)/2; 
    d=(d-1)/2;          
    if(s>d) 
    { 
     temp=s; 
     s=d; 
     d=temp; 
    } 
    for(k=s;k<=d;k++) 
     P[k]++; 
   } 
   min=-1; 
   for(j=0;j<200;j++) 
    if(P[j]>min) 
     min=P[j]; 
   cout<<min*10<<endl; 
} 
return 0; 
}

/*
//1009 FatMouse' Trade
//经典的背包问题

#include <iostream>
#include <iomanip>
using namespace std;
struct date 
{
int f;
int j;
double r;
}d[1000];

int cmp (const void *a , const void *b)
{
return (*(date *)a).r > (*(date *)b).r ? 1 : -1;
}

int main()
{
int m , n , i ;
double sum;
while(cin>>m>>n, m+1 || n+1)
{
   for(i=0; i<n; i++)
   {
    cin>>d[i].j>>d[i].f;//j代表价值,f代表重量
    d[i].r = d[i].j * 1.0 / d[i].f;
   }
   qsort(d,n,sizeof(d[0]),cmp);
   sum = 0;
   for(i=n-1; i>=0; i--)
   {
    if(d[i].f <= m )
    {
     sum += d[i].j;
     m -= d[i].f;
    }
    else
     break;
   }
   if(m>0)
    sum += (double)m/d[i].f * d[i].j;
   cout<<fixed<<setprecision(3)<<sum<<endl;
}
return 0;
}

*/

相关文章:

  • 第十一章 【后端】商品分类管理微服务(11.2)——Lombok
  • 互联网环境下CentOS7部署K8S
  • RNN发展(RNN/LSTM/GRU/GNMT/transformer/RWKV)
  • Docker Swarm管理(Docker技术集群与应用)
  • 云服务器部署DB-GPT项目
  • CSS 常用元素属性
  • mfc 疑难杂症之一
  • 局域网https自签名教程
  • kafka学习问题
  • 在autodl搭建stable-diffusion-webui+sadTalker
  • goland配置新增文件头
  • 静态方法,类的主方法
  • 【Hack The Box】Linux练习-- OpenAdmin
  • 最新科目一攻略(新规)
  • 全球与中国羽绒服行业规模预测及投资策略研究报告2022-2028年
  • SparkRDD详解
  • Python项目一:pygname
  • 数据库的三级模式和二级映像
  • 【Hack The Box】linux练习-- Mango
  • Scientific Reports|比较转录组分析揭示了杀菌剂氰烯菌酯对尖孢镰刀菌的抗性调控机制和杀菌活性
  • 显示DataFrame中每行(或列)中,每个位置以前出现过的最小值:cummin()函数
  • redis过期key的清理/删除策略
  • 基于JavaWeb SSM bootStrap 校园二手市场管理系统的设计与实现
  • 博客系统前端页面
  • Kotlin Flow响应式编程,操作符函数进阶
  • Postman高频面试题及答案汇总(接口测试必备)
  • kaldi安装流程
  • 飞行机器人专栏(八)-- AGX Xavier 通信、控制及视觉应用开发
  • ZooKeeper设置ACL权限控制,删除权限
  • 前端面试题(JS部分)
  • 在博客园随笔中插入3D分子模型
  • 2009年数学二真题复盘