• 外卖店优先级


    思想: 模拟+枚举

    以T为单位的枚举一定会超时;

    若以m为单位 比较复杂

    以 n 为单位 且为外侧循环, 以它的订单为内层循环(sort一下)

    #include <bits/stdc++.h>
    using namespace std;
    #define ri register int 
    #define M  100005 
    
    vector <int> p[M];
    int n,m,T;
    int main(){
        
        scanf("%d%d%d",&n,&m,&T);
        
        for(ri i=1;i<=m;i++)
        {
            int a,b;
            scanf("%d%d",&a,&b);
            p[b].push_back(a);
        }
        
        int ans=0;
        for(ri i=1;i<=n;i++)
        {
            sort(p[i].begin(),p[i].begin()+p[i].size());
            int trmp=0;
            int cur=0;
            for(ri j=0;j<p[i].size();j++)
            {
                int a=p[i][j];
                
                if(a!=trmp)
                cur-=(a-trmp-1);   
                    
                if(cur<0) cur=0;
                
                cur+=2;
                
                trmp=a;
                if(cur-(T-a)>=4&&cur>5)
                {
                    ans++;
                    break;
                }    
            }
        }
        printf("%d",ans);
        return 0; 
    }
    View Code

    反思: 实现代码的时候 一定要确保你的代码 表达的 意思 和你想的一样, 

                                                                            和 模拟的情况一样,多举点栗子 去验证 代码。多想想各种情况。

                样例过了,可能只是某一种情况而已,自己仔细想想,特别是模拟的题

  • 相关阅读:
    【AGC010E】Rearranging(博弈,图论,拓扑排序)
    【ARC074F】Lotus Leaves(最小割)
    【ARC069F】Flags(2-SAT,Tarjan,线段树优化建图)
    [CTS 2019] 氪金手游
    HDU
    LOJ
    LOJ
    [TJOI 2015] 概率论
    [AGC 018F] Two Trees
    LOJ
  • 原文地址:https://www.cnblogs.com/Lamboofhome/p/15612734.html
Copyright © 2020-2023  润新知