zoukankan      html  css  js  c++  java
  • hdu 4864 Task

    http://acm.hdu.edu.cn/showproblem.php?pid=4864

    对机器和任务先按时间从大到小排序,时间相同再水平。先选任务找到最小的符合的机器贪心处理就行。

     1 #include <cstdio>
     2 #include <cstring>
     3 #include <algorithm>
     4 #define maxn 200000
     5 using namespace std;
     6 
     7 struct node
     8 {
     9     int ti,le;
    10     bool operator <(const node &a)const
    11     {
    12         return (ti>a.ti)||(a.ti==ti&&le>a.le);
    13     }
    14 }m[maxn],t[maxn];
    15 
    16 int n,m1;
    17 int c[maxn];
    18 
    19 int main()
    20 {
    21     while(scanf("%d%d",&n,&m1)!=EOF)
    22     {
    23         memset(c,0,sizeof(c));
    24         for(int i=0; i<n; i++)
    25         {
    26             scanf("%d%d",&m[i].ti,&m[i].le);
    27         }
    28         for(int i=0; i<m1; i++)
    29         {
    30             scanf("%d%d",&t[i].ti,&t[i].le);
    31         }
    32         sort(m,m+n);
    33         sort(t,t+m1);
    34         __int64 sum=0;
    35         int j=0;
    36         int ans=0;
    37         for(int i=0; i<m1; i++)
    38         {
    39             while(j<n&&m[j].ti>=t[i].ti)
    40             {
    41                 c[m[j].le]++;
    42                 j++;
    43             }
    44             for(int k=t[i].le; k<=200; k++)
    45             {
    46                 if(c[k])
    47                 {
    48                     c[k]--;
    49                     ans++;
    50                     sum+=(500*t[i].ti+2*t[i].le);
    51                     break;
    52                 }
    53             }
    54         }
    55         printf("%d %I64d
    ",ans,sum);
    56     }
    57     return 0;
    58 }
    View Code
  • 相关阅读:
    循序渐进学习XHTML
    一些常用正则表达式
    输入框限制
    Oracle 取随机数
    安装部署中的数据库打包和快捷方式启动浏览器
    游标小例
    查询列数
    临时表简介
    Update动态更新
    sql 多列转一列
  • 原文地址:https://www.cnblogs.com/fanminghui/p/3862548.html
Copyright © 2011-2022 走看看