zoukankan      html  css  js  c++  java
  • AGC049 题解&总结

    AGC仍旧是那么毒瘤……

    %%%gmh77


    A

    干了1h多都干不出来,自闭……

    https://www.cnblogs.com/jz-597/p/13975626.html

    B

    操作相当于:选择某个(1),将其左移一位,如果左边也有(1)就抵消。

    从左往右扫,把遇到的(T)(1)搞个队列,遇到的(S)(1)就先尝试配对队列中第一个,如果队列为空就尝试消掉前面一个未配对的。

    C

    WA了4次最后10min内交的……

    可以发现:对于编号(i),两种情况:要么(i)一直向左走完全程,要么(i)没有开始走就被摧毁了。

    可以直接贪心让每个都走完全程,除了走完全程会到达(0)的。接下来就会形成一些空隙,存在一些走完全程到达(0)的没有被覆盖。让它合法有两种方法:1. 让后面的延长覆盖它。2. 将自己缩短到不会覆盖(0)

    选了第二种方法后,前面的都不用考虑了。所以直接枚举选第二种方法的是哪个,后面的都用第一种方法。

    注意缩短自己时也能补足他人,所以是取max。

    using namespace std;
    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    #include <climits>
    #define N 200005
    #define INF 1000000000
    #define ll long long
    int n;
    ll a[N],b[N];
    int main(){
    	scanf("%d",&n);
    	for (int i=1;i<=n;++i) scanf("%lld",&a[i]);
    	for (int i=1;i<=n;++i) scanf("%lld",&b[i]);
    	ll l=a[n]+1,sum=0,ans=LLONG_MAX;
    	for (int i=n;i>=1;--i){
    		if (a[i]-b[i]>0)
    			l=min(l,a[i]-b[i]);
    		else{
    			ans=min(ans,max(sum,b[i]-a[i]+1));
    //			ans=min(ans,sum+b[i]-a[i]+1);
    			if (a[i]<l){
    //				printf("%d
    ",a[i]);
    				sum++;
    //				sum+=l-a[i];
    				l=a[i];
    			}
    		}
    	}
    	ans=min(ans,sum);
    	printf("%lld
    ",ans);
    	return 0;
    }
    

    D

    https://www.cnblogs.com/jz-597/p/13992257.html


    1. 对于AGC这种神仙比赛,A题不一定是最水的,有可能一直做不出来。所以要学会尽快换题看看。
    2. 然而A题可能实际上也很水,这考验换角度思考的能力。
    3. 细节想清楚再交,不然罚时很惨烈。
    4. 比赛的时候千万不要把gmh77的做题进度放在心上,会扰乱心态。
  • 相关阅读:
    三十五、常用控件
    三十九.导入工程出错
    三十七、创建无图标的应用
    三十二、汉字排序
    三十八、分辨率适配方法
    四十一、打开各种文件的intent
    ExamTime
    MusicPXY3.1
    单目运算符的最新认识
    寄快递费用
  • 原文地址:https://www.cnblogs.com/jz-597/p/13992262.html
Copyright © 2011-2022 走看看