zoukankan      html  css  js  c++  java
  • hdu 1257 && hdu 1789(简单DP或贪心)

    第一题;http://acm.hdu.edu.cn/showproblem.php?pid=1257

    贪心与dp傻傻分不清楚,把每一个系统的最小值存起来比较

     1 #include<cstdio>
     2 using namespace std;
     3 int a[30001],b[30001];
     4 int main()
     5 {
     6     int n,i,j;
     7     while (~scanf("%d",&n))
     8     {
     9         int ans=0;
    10         b[0]=-1;
    11         for (i=0;i<n;i++)
    12         {
    13             scanf("%d",&a[i]);
    14             for (j=0;j<=ans;j++)
    15             {
    16                 if (a[i]<=b[j])
    17                 {
    18                     b[j]=a[i];
    19                     break;
    20                 }
    21                 if (j==ans)
    22                 {
    23                     ans++;
    24                     b[ans]=a[i];
    25                     break;
    26                 }
    27             }
    28         }
    29         printf("%d
    ",ans);
    30     }
    31     return 0;
    32 }

    第二题;http://acm.hdu.edu.cn/showproblem.php?pid=1789

    t组测试数据,一个人要做n完份作业,第一行是每个作业规定的最迟的提交的时间,第二行是每个作业超过规定时间提交要扣除的分数,求扣除的最小分数

    将扣得分数排序,先考虑影响最大的,然后填充时间

     1 #include<cstdio>
     2 #include<cstring>
     3 #include<algorithm>
     4 using namespace std;
     5 struct point {
     6     int time,val;
     7     bool operator <(const point & q) const
     8     {
     9         //if (val==q.val) return q.time>time;
    10         return q.val<val;
    11     }
    12 };
    13 point yj[1001];
    14 int vis[1001];
    15 int main()
    16 {
    17     int t,i,j,n;
    18     scanf("%d",&t);
    19     while (t--)
    20     {
    21         scanf("%d",&n);
    22         for (i=1;i<=n;i++)
    23             scanf("%d",&yj[i].time);
    24         for (i=1;i<=n;i++)
    25             scanf("%d",&yj[i].val);
    26         sort(yj+1,yj+n+1);
    27         memset(vis,0,sizeof(vis));
    28         int sum=0;
    29         for (i=1;i<=n;i++)
    30         {
    31             for (j=yj[i].time;j>0;j--)
    32             {
    33                 if (vis[j]==0)
    34                 {
    35                     vis[j]=1;
    36                     break;
    37                 }
    38             }
    39             if (j==0)
    40                 sum+=yj[i].val;
    41         }
    42         printf("%d
    ",sum);
    43     }
    44     return 0;
    45 }
  • 相关阅读:
    P3703 [SDOI2017]树点涂色
    CF1446D2 Frequency Problem (Hard Version)
    P3703 [SDOI2017]树点涂色
    ESP8266 Ticker库
    CSS 动画
    Sublime 安装
    XMLHttpRequest.responseText
    数据结构
    Linux 无需公网IP,远程SSH访问Linux服务器!
    Linux 安装
  • 原文地址:https://www.cnblogs.com/JJCHEHEDA/p/4879014.html
Copyright © 2011-2022 走看看