zoukankan      html  css  js  c++  java
  • CodeForces

    贪心

    做的时候贪歪了,没做出来(菜)

    思路:先按照每道题的ti从小到大排一下序,然后按照排好的序依次选取每一道题,每做完一道题的时候求一下当前的时间和下一道题的ti的差再减1(代表下一个必须做的题到来之前还有多少时间去做非必要的题),每做一道题更新结果即可。注意数据类型要开long long。

    #include<bits/stdc++.h>
    #include <cstdio>
    #include<iostream>
    #include<iomanip>
    #include<cstring>
    #include<sstream>
    #include<algorithm>
    #include<cstdio>
    #include<stdlib.h>
    #include<string>
    using namespace std;
    typedef long long ll;
    const int MAXN=1e6+10;
    const int mod=998244353;
    struct pp
    {
        int f;
        int tt;
        bool operator <(pp &k)
        {
            return tt<k.tt;
        }
    }aa[MAXN];
    int main()
    {
        int t;
        scanf("%d",&t);
        while(t--)
        {
            int n,T,a,b;
            ll diff=0,easy=0;
            scanf("%d%d%d%d",&n,&T,&a,&b);
            for(int i=1;i<=n;i++)
            {
                scanf("%d",&aa[i].f);
                if(aa[i].f==1)diff++;
                else easy++;
            }
            for(int i=1;i<=n;i++)
                scanf("%d",&aa[i].tt);
            sort(aa+1,aa+n+1);
            aa[n+1].tt=T+1;
            ll sum=0,ans=0,ans1=0,ff=0;
            for(int i=0;i<=n;i++)
            {
                if(i!=0)
                {
                    if(aa[i].f)sum+=b,diff--;
                    else sum+=a,easy--;
                }
                if((i==0||i==n||aa[i].tt!=aa[i+1].tt)&&sum<=T&&sum<aa[i+1].tt)
                {
                    ll res=aa[i+1].tt-sum-1;
                    ll mi=min(easy,res/a);
                    res-=mi*a;
                    ll ma=min(diff,res/b);
                    ans=max(ans,i+mi+ma);
                }
                if(sum>T)break;
            }
            printf("%lld
    ",ans);
        }
    }
    View Code
  • 相关阅读:
    java三种实现线程的方法比较
    java基础
    java闭包
    android 设置textview跑马灯效果
    android控制系统音量
    android 查找某个特定文件后缀名
    android 歌词解析
    textview滑动效果
    puporwindow
    android 网络通讯
  • 原文地址:https://www.cnblogs.com/kayiko/p/12142074.html
Copyright © 2011-2022 走看看