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

HDOJ4070

        这是福州赛区网络赛最后一个题,听说可以用动态规划做。但是我感觉用贪心也可以做(很久以前做的,现在是想记录在博客上)。于是就思考用贪心怎么做。

               

       

        题目意思非常简单,就是一个噬菌体可以产生新的噬菌体,这些噬菌体可以感染细胞,感染每个细胞的需要的噬菌体数量和journey 所需时间不一样。问感染所有细胞至少需要多少时间?

        大概思路:贪心必定要排序,我定义了一个结构体数组(num,time),按时间从大到小排序。变量sum 动态记录所需总时间,remain可以空闲以做他用的时间。详细说明在代码注释中。

 

代码:

#include<stdio.h>
#include<stdlib.h>

typedef struct 
{
  int num,time;// 数量 和 所需时间        
} phage;

phage a[100001];

int cmp(const void *a,const void *b)//按时间从大到小排序 
{
    return ((phage *)b)->time - ((phage *)a)->time;
}

int main()
{
  int T,cell,i,j,k = 1,next; 
  scanf("%d",&T);
  getchar();
  
    do
    {
      int sum = 0,remain;
      scanf("%d",&cell);
      for(i = 0 ; i != cell ; ++i)
      scanf("%d%d",&a[i].num,&a[i].time);
      
      qsort(a,cell,sizeof(a[0]),cmp); 
      sum =  a[0].time + a[0].num ;// sum 动态记录至少需要的时间 
      remain = a[0].time;//the time of journey ,表示可以空下来生产phage 的时间 
            
      for(i = 1 ; i < cell ; ++i)
      {
          next = a[i].num + a[i].time;//感染下一个细胞所需时间 
          
          if( next < remain )//remain 够用 
          {
             remain -= a[i].num;//用掉一部分remain           
          }
          else   //remain 不够用了 
          {
              sum +=(next - remain);// sum 就要增加 
              remain = a[i].time;//更新remain 
          }  
      }
     printf("Case %d: %d\n",k++,sum);
         
    }while(--T); 
      
  //system("pause");
  return 0;    
}

 

转载于:https://www.cnblogs.com/HpuAcmer/archive/2011/11/28/2266077.html

相关文章:

  • apche IIS .htaccess httpd.ini Rewrite RewriteRule详解
  • 60个数据窗口技巧(转)
  • Android基础之Android硬件
  • VIM之Project 项目管理工具
  • 复制构造函数与禁止复制即函数值传递的原理
  • 基于MINA构建简单高性能的NIO应用-一个简单的例子
  • 【分析最原始验证码生成】HTTP请求处理程序
  • 托盘程序(WinForm)
  • kindle3 入手感受
  • C# 线程手册 第一章 线程定义
  • 1175 - 连连看
  • [恢]hdu 2082
  • 《营销管理》小结
  • 如何点击链接直接跳转到app store指定应用下载页面
  • 回顾我的2011
  • [译]前端离线指南(上)
  • JavaScript设计模式与开发实践系列之策略模式
  • js中forEach回调同异步问题
  • mysql_config not found
  • PaddlePaddle-GitHub的正确打开姿势
  • python 学习笔记 - Queue Pipes,进程间通讯
  • Sublime text 3 3103 注册码
  • thinkphp5.1 easywechat4 微信第三方开放平台
  • yii2权限控制rbac之rule详细讲解
  • zookeeper系列(七)实战分布式命名服务
  • 当SetTimeout遇到了字符串
  • 高程读书笔记 第六章 面向对象程序设计
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 说说动画卡顿的解决方案
  • 详解移动APP与web APP的区别
  • 赢得Docker挑战最佳实践
  • $jQuery 重写Alert样式方法
  • (11)工业界推荐系统-小红书推荐场景及内部实践【粗排三塔模型】
  • (a /b)*c的值
  • (windows2012共享文件夹和防火墙设置
  • (附源码)ssm高校社团管理系统 毕业设计 234162
  • (一)使用IDEA创建Maven项目和Maven使用入门(配图详解)
  • (转) 深度模型优化性能 调参
  • .net core 连接数据库,通过数据库生成Modell
  • .NET 材料检测系统崩溃分析
  • .php结尾的域名,【php】php正则截取url中域名后的内容
  • .so文件(linux系统)
  • /etc/shadow字段详解
  • @ModelAttribute注解使用
  • @RequestBody详解:用于获取请求体中的Json格式参数
  • @四年级家长,这条香港优才计划+华侨生联考捷径,一定要看!
  • [BZOJ 1040] 骑士
  • [BZOJ3211]:花神游历各国(小清新线段树)
  • [C#]C# OpenVINO部署yolov8图像分类模型
  • [CareerCup][Google Interview] 实现一个具有get_min的Queue
  • [ITIL学习笔记]之事件管理(2)
  • [LeetCode]—Copy List with Random Pointer 深度复制带“任意指针”的链表
  • [macOS] Mojave10.14 夜神安卓模拟器启动问题
  • [NAND Flash 6.4] NAND FLASH基本读操作及原理_NAND FLASH Read Operation源码实现
  • [NLP] LlaMa2模型运行在Mac机器