已经刷不了几天了。。。

AGC001

A-BBQ Easy

排个序就过了

B-Mysterious Light

手膜一下,你会发现魔改一下\(gcd\)就行了

C-Shorten Diameter

刚开始猜了个乱搞,但觉得是假的没敢写,最后看了题解才知道真的是那样?

先说做法,就是如果\(k\)为偶数,就枚举每一个点作为根,然后把深度大于\(\frac{k}{2}\)的都删掉;奇数的情况基本同理,就是枚举相邻的两个点,然后在两边分别删就行了

正确性感觉上是对的

D-Arrays and Palindrome

看错题了,把最后一个条件理解为\(a\)和\(b\)的\(n\)个字母两两对应相等了。。。

考虑建一张图,两点之间有连边代表这两个位置的字母相同,那么合法的图必须是联通的。

然后随便画几个情况,按照各路神仙的说法,你会发现奇数特别没前途。事实上,只要有超过两个奇数就得输出不可能,证明如下:

设\(x\)为奇数的个数,那么把\(a\)中的边连完后会形成\(\frac{n-x}{2}+x\)个联通块,最少需要\(\frac{n-x}{2}+x\)边才能把他们联通,而\(b\)中最多可以提供\(\frac{n}{2}\)条边,由此我们可以推出,如果边数足够,有:

\[\frac{n-x}{2}+x-1\leqslant \frac{n}{2}
\]

解得

\[x\leqslant 2
\]

证毕

最后我们需要把\(b\)构造出来,考虑把奇数放到\(a\)的头尾,然后大力讨论一下怎么连边就行了

注意不能输出\(0\)

E-BBQ Hard

考虑那个二项式系数的组合意义:每次只能向上或向右走一格,从\((-A_i,-B_i)\)走到\((A_j,B_j)\)的方案数。然后就是个普及组\(dp\)了

最后统计时要减去自己到自己的贡献然后除以\(2\)

P.S.这个转化似乎挺常用的

F-Wide Swap

第一步的转化没有想到怎么办啊

考虑搞一个序列\(q\),\(q[p[i]]=i\),那么问题等价于使\(q\)的字典序最小,每次操作可以交换\(q\)中相邻的且差值大于等于\(k\)的两个元素

发现无论怎么交换,差值小于\(k\)的两个元素的先后顺序是不会变的,而且先后关系正确的序列一定合法。这样提示我们建个图并在其中连有向边代表先后关系,然后就变成一个拓扑排序的题了

但是这样建图的复杂度是\(O(nk)\)的,显然有一些边是冗余的,我们可以拿线段树优化一下,这样边的数量就变成\(O(n)\)级别的了

最后只要用小根堆搞一个字典序最小的拓扑序就行了

代码不长。。。

P.S.对于排列,建立权值到位置的双射似乎挺常用的

AGC002

A-Range Product

不用说了

B-Box and Ball

模拟就可以了

C-Knot Puzzle

倒着考虑,就变成一个很简单的模型了

D-Stamp Rally

注意看题,是从两个点分别出发,不是从\(x\)到\(y\)

问题等价于最早在什么时候两个点所在联通块并集的大小大于等于\(z\)

首先想到二分答案:每次二分一条边,然后暴力重构并查集。但是这样的复杂度是\(O(qmlog\ m)\),显然不行,考虑整体二分

但是整体二分时会有一个问题,就是重构并查集的代价太大了,同时发现如果把整体二分改成\(BFS\)就可以只重构\(log\ m\)次了,这样总复杂度为\(O((m+q)log\ mlog\ n)\),可以\(AC\)此题

E-Candy Piles

好神奇的转化

考虑把每一堆看成一个宽\(1\)长\(a_i\)的矩形,并把它们左对齐、从长到短、自底向上垒成一摞。

随便画几个简单的例子,发现问题可以转化为从左下角出发,每次可以向上移或向右移一格,移出边界者输

然后我们找找规律,为了方便,令\(0\)为先手必败,\(1\)为先手必胜

1010
010110
101101
0110110
......

发现第\(i\)行是由第\(i-1\)行左移\(1\)位并加上\(a[i]-a[i-1]+1\)个数构成的

于是我们可以排个序并从前到后扫一遍并维护一下上一行最后一个位置的值是什么,直到哪一行的某一个位置左移若干次后正好为最后一行的第一位,输出这个位置的值就行了

代码抄的题解的\(QwQ\)

F-Leftmost Ball

据题解说,有一个显然的规律:对于一个合法的序列,任何一个前缀中白球的数量大于等于其他颜色的球的种类数

然后我们来设计一个\(O(n^2)\)的\(dp\)。设\(f[i][j]\)表示已经放了\(i\)个白球和\(j\)种颜色的方案数,转移时考虑从左往右第一个空位放什么,可以得到如下的转移方程:

\[f[i][j]=f[i-1][j]+f[i][j-1]\times (n-j+1)\times \binom{n-i-(j-1)\times (k-1)-1}{k-2}
\]

边界\(f[i][0]=1\),同时\(k=1\)时也要直接输出\(1\)

至于为什么要考虑空位放什么,有两个原因

1.可以保证序列是合法的

2.可以不算重

AGC003

A-

这个不用说了吧

B-

简单的贪心

C-

相当于是有两种操作,要么交换相邻的两个,要么交换隔着的两个,操作一最少要用多少次

发现操作二可以任意交换奇数位置上的值或偶数位置上的值,而操作一可以交换奇数和偶数位置,所以我们统计一下应该在奇数位置上的值缺了几个就可以了

D-Anticube

好神仙的数学题

E-Sequential operations on Sequence

思维题肝不动啊

经观察会发现若操作\(q_i\geqslant q_{i+1}\),那么\(q_i\)就没用了,所以我们可以维护一个单调栈把那些有用的操作保留

然后看一下操作之间有什么关系。因为现在的\(q_i\)严格递增,所以\(q_{i+1}\)由\(q_i\)重复若干次并加上\(q_i\)的一个前缀构成。重复若干次的话我们可以把\(q_i\)乘上一个系数,最主要的就是处理那个前缀

递归地考虑,其实前缀也是由之前的某个操作\(q_j\)重复若干次并加上它的前缀构成的。所以我们可以二分出来\(q_j\)在哪,把\(q_j\)也乘上一个系数,然后把新的前缀递归下去

可以证明复杂度为\(O(nlog^2\ n)\)

F-Fraction of Fractal

不敢做了。。。

AGC004

AGC刷题记的更多相关文章

  1. PE刷题记

    PE 中文翻译 最喜欢做这种很有意思的数学题了虽然数学很垃圾 但是这个网站的提交方式好鬼畜啊qwq 1.Multiples of 3 and 5 直接枚举 2.Even Fibonacci numbe ...

  2. ctfshow之Web入门刷题记(从89开始,持续更新)

    0x01Web89-99PHP特性payload Web89 include("flag.php"); highlight_file(__FILE__); if(isset($_G ...

  3. AGC007题解

    发现自己思维能力又跟不上了...做题有点吃力...所以回归AGC刷题计划... AGC040506都写了一部分题然后懒得补全了,所以从07开始做吧.大概是从C开始. C 这也太人类智慧了吧... 我先 ...

  4. Flask+pin

    Flask+SSTI的新火花 记一次buu刷题记和回顾祥云杯被虐出屎的经历.题目:[GYCTF2020]FlaskApp 一 题目初见 朴实无华的页面,一个base64的小程序页面 看到有提示. 我就 ...

  5. 谷歌pixel手机解BL锁、刷机、破解电信(史上最详细的帖子)

    本文根据网上已有内容进行整理,对每一个步骤都进行了实践,运气爆棚,几乎没有出现什么重大错误,小错误也进行了很好地解决.因此,十分感激那些为折腾google pixel的IT爱好者,为我提供了无穷的帮助 ...

  6. 8.20~8.25刷散题记录 By cellur925

    记录一些散题 / 价值不大但还是想记下来的题目 / 没正八经写博客的题目 8.24 Luogu P1508 沙雕题数字三角形的二维升级版,但是注意阅读理解,李大水牛从桌子最后一行下侧开始吃,而本题是自 ...

  7. leetcode 刷题记录(java)-持续更新

    最新更新时间 11:22:29 8. String to Integer (atoi) public static int myAtoi(String str) { // 1字符串非空判断 " ...

  8. AtCoder刷题记录

    构造题都是神仙题 /kk ARC066C Addition and Subtraction Hard 首先要发现两个性质: 加号右边不会有括号:显然,有括号也可以被删去,答案不变. \(op_i\)和 ...

  9. WPF样式之画刷结合样式

    第一种画刷,渐变画刷GradientBrush (拿线性渐变画刷LinearGradientBrush(其实它涵盖在GradientBrush画刷内.现在拿他来说事.),还有一个圆心渐变画刷Radia ...

随机推荐

  1. 能力不足的C++开发会欺辱能力不足C#开发

    能力不足的C++开发会欺辱能力不足C#开发 我被C++开发欺辱的岁月   前言 人被压迫了,为什么不斗争?——鲁迅 作为一个C#开发者,我经历了,也见证了很多同行饱受C++开发的歧视和欺辱. 而且,这 ...

  2. idea查看源码没有注释的问题

    进入idea的设置 勾选这两个 然后重新导入 页面的右上角有个下载download source的提示,点击下载即可 然后页面就要源码注释了

  3. java新特性stream

    java新特性stream,也称为流式编程. 在学习stream之前先了解一下java内置的四大函数 第一种函数式函数,后面是lambda表达式写法 /*Function<String,Inte ...

  4. layui layer.open弹出框获取不了 input框的值

    layer.open({ title:'添加管理员', type: 1, content: $('.add_html').html(), btn:['添加', '取消'], btnAlign:'c', ...

  5. [Cometoj#4 B]奇偶性_打表

    奇偶性 题目链接:https://cometoj.com/contest/39/problem/B?problem_id=1577 数据范围:略. 题解: 因为$f$的构造原因,很容易找到规律. 进而 ...

  6. RAMSPEED的简单测试数据 x86虚拟机 龙芯 飞腾

    1. ramspeed 简介 http://alasir.com/software/ramspeed/ 官网为 2. 进行简单安装测试的步骤 . 下载 wget http://alasir.com/s ...

  7. Hanlp-地名识别调试方法详解

    HanLP收词特别是实体比较多,因此特别容易造成误识别.下边举几个地名误识别的例子,需要指出的是,后边的机构名识别也以地名识别为基础,因此,如果地名识别不准确,也会导致机构名识别不准确. 类型1 数字 ...

  8. idea调试框架时如何能够进入maven依赖包的源码

    最近用idea使用spring security做登录与权限控制,在调试过程中碰到问题,经常需要断点追踪源码,深入查看其中问题.但是maven中引用的包,进入后都是.class文件,非源码.导致查看时 ...

  9. 解决python语言在cmd下中文乱码的问题

    解决python语言在cmd下中文乱码的问题: a = "再见!"print (a.decode('utf-8').encode('gbk')) #解决在cmd下中文乱码的问题

  10. C#向远程地址发送数据

    static string proxyIpAddress = AppConfig.GetProxyIpAddress; static string proxyUserName = AppConfig. ...