zoukankan      html  css  js  c++  java
  • Comet OJ

    比赛情况

    40 + 60 + 0 = 100pts

    哎,T1做错了,没有对拍。如果发现错误 (=>) 改正 (=>) 40->100pts,160pts (=>) 就是rk11,12了(没有那么多如果拉)。T3 看不懂题目,我菜出天际。。。然而dalao们还是轻松AK了。

    比赛总结

    这场比赛还是总体偏水,比较套路。但是我的能力应该是在160pts。

    • T1 :T1比CSPD1T1可能要难一点,有套路的。考场上看到这题我就马上联想到了双指针和dp,没有太看dp的正确性就写了dp,其实这个dp是错误的。

    • T2 :T2就是一个套路题。60pts的做法我调了好一会,100pts的做法是卢卡斯定理,没得说。

    • T3 :有许些dalao切了T3,T3应该比CSPD1T3简单得多,还好没有去钻T3,因为我连题目都看不懂。

    问题1:简单的题目做错了。

    办法:做题时脑袋要清醒,冷静分析做法,努力AC D1T1;写对拍。

    问题2:调程序调得有点急躁

    办法:冷静思考问题出在哪里。

    T1 波浪

    很像双指针计数题,我们就双指针吧。

    记录 [l,r] 一个极大区间,这个区间是波浪形的(即< >=交错出现,相邻的两个符号不等),这个区间的波浪子区间数是 (r-l)*(r-l+1)/2 等差数列求和。注意 l>n-1 了就不能走了,因为这个区间至少为2

    Talk is cheap.Show me the code.

    #include<bits/stdc++.h>
    using namespace std;
    inline int read() {
    	int x=0,f=1; char ch=getchar();
    	while(ch<'0' || ch>'9') { if(ch=='-') f=-1; ch=getchar(); }
    	while(ch>='0'&&ch<='9') { x=(x<<3)+(x<<1)+(ch^48); ch=getchar(); }
    	return x * f;
    }
    typedef long long LL;
    const int N = 3e6+7;
    int n;
    int a[N],b[N];
    int main()
    {
    	n = read();
    	for(int i=1;i<=n;++i)
    		a[i] = read();
    	for(int i=1;i<=n-1;++i) b[i] = (a[i]<=a[i+1]);
    	int l = 1, r = 0; LL ans = 0;
    	while(l<=n-1) {
    		r = l+1;
    		while(r<=n-1 && b[r-1]!=b[r]) ++r;
    		ans += (r-l)*(r-l+1)/2;
    		l = r;
    	}
    	printf("%lld
    ",ans);
    	return 0;
    }
    /*
    5
    1 2 3 2 1
    
    5
    */
    

    (其实我也是T1随手切的男人啊,柯西考场降智)

    T2 小猪佩奇跳格子

    卢卡斯 Lucas定理待补充...

    T3 小猪佩奇和仙人掌

    看不懂的题目待补充...

  • 相关阅读:
    vue使用elementui合并table
    使用layui框架导出table表为excel
    vue使用elementui框架,导出table表格为excel格式
    前台传数据给后台的几种方式
    uni.app图片同比例缩放
    我的博客
    【C语言】取16进制的每一位
    SharePoint Solution 是如何部署的呢 ???
    无效的数据被用来用作更新列表项 Invalid data has been used to update the list item. The field you are trying to update may be read only.
    SharePoint 判断用户在文件夹上是否有权限的方法
  • 原文地址:https://www.cnblogs.com/BaseAI/p/11961368.html
Copyright © 2011-2022 走看看