zoukankan      html  css  js  c++  java
  • hdu4907 水dp 或者set

    题意:
          给你一些被占用的时间点,然后有一些询问,每次输出大于等于询问时间的没被占用的最小的那个时间。


    思路:

          直接把所有用过的时间标记上,然后倒着更新一遍当前最小空余时间,或者用set做,两个都在下面写代码了,水题不解释了,直接看看代码就懂了。

    #include<stdio.h>
    #include<string.h>
    
    #define N 200000 + 10
    
    int dp[N] ,mark[N];
    
    int main ()
    {
       int n ,m ,i ,a ,t;
       scanf("%d" ,&t);
       while(t--)
       {
          scanf("%d %d" ,&n ,&m);
          memset(mark ,255 ,sizeof(mark));
          for(i = 1 ;i <= n ;i ++)
          {
             scanf("%d" ,&a);
             mark[a] = 0;
          }
          int now = 200000+1;
          for(i = 200000+1 ;i >= 1 ;i --)
          {
             if(mark[i]) now = i;
             dp[i] = now;
          }
          for(i = 1 ;i <= m ;i ++)
          {
             scanf("%d" ,&a);
             printf("%d
    " ,dp[a]);
          }
       }
       return 0;
    }
    
    
    
    #include<stdio.h>
    #include<set>
    
    using namespace std;
    
    set<int>my_set;
    int mk[110000];
    
    int main ()
    {
       int i ,n ,m ,a ,t;
       scanf("%d" ,&t);
       while(t--)
       {
          scanf("%d %d" ,&n ,&m);
          int max = 0;
          for(i = 1 ;i <= n ;i ++)
          {
             scanf("%d" ,&mk[i]);
             if(max < mk[i]) max = mk[i];
          } 
          my_set.clear();
          for(i = 1 ;i <= max + 1 ;i ++)
          my_set.insert(i);
          my_set.insert(1100000);
          for(i = 1 ;i <= n ;i ++)
          my_set.erase(mk[i]);
          for(i = 1 ;i <= m ;i ++)
          {
             scanf("%d" ,&a);
             int ans = *my_set.lower_bound(a);
             if(ans == 1100000) ans = a;
             printf("%d
    " ,ans);
          }
       }
       return 0;
    }
             
    

  • 相关阅读:
    文字预览蒙层组件
    h5按需引入Vant
    uni-app封装网络请求promise
    uniapp去修改vuex中state中的值
    uni-app之vuex(一)
    uni-app配置顶部标题样式
    uni-app组件 信息列表组件
    uni-app之条件编译
    uni-app封装input组件用于登录
    dfs序的应用
  • 原文地址:https://www.cnblogs.com/csnd/p/12062900.html
Copyright © 2011-2022 走看看