首页 > 其他分享 >ICPC2022 Online Contest 2 游记

ICPC2022 Online Contest 2 游记

时间:2022-09-26 14:13:21浏览次数:51  
标签:ICPC2022 Contest 矩阵 然后 正方形 ls Online 发现 ghj

总结,8个题,前期罚时爆炸,后期坐牢。

开局先找到签到题【E】。题意是给定 \(a_1\) 要求构造 数组 \(a_i\) , 满足 \(\gcd(a_i, a_{i-1})==1\) 且 \(a_i>1\) 。

显然直接贪一波,后面的构造肯定是2 3 2 3,但是考虑到第一个数可以是6,所以第二个数要找最小的不是 \(a_1\) 因子的一个质数,搞个线性筛上去就行了;然后后面直接找规律。

然后发现这个博弈论【J】很可做的样子,发现如果两边一个小一个大,拿走大的之后小的就拿不了了,变成计算步数膜2,于是处理一下向左、向右的单调递增长度;如果拿走大的话就相当于把一个问题扔给对手,注意要加一个lim为你拿的那个数,后续只能拿大于lim的数字,然后用博弈论的基本原理递归一下就行了。当然有的时候可能会有最长递增子串比当前处理子区间长,但是这个没关系 ,因为你显然可以拿大的那一边,你就赢了。第一发把递归r-1写成r+1导致爆栈了,第二发忘了判limit了,喜提。

然后ghj在做【A】题,发现他p是100以内素数而且输入也只考察了100以内。于是就有一个东西叫做费马小定理,\(10^i\mod p\) 是带循环的。ghj这个智障一开始以为循环节是p,然后有一个死活过不去。后来发现这玩意不是p-1吗。

然后到了经典的三人三题局面,卢姥爷发现这个【B】似乎是xjb DP一下就行了,ls发现这个【F】可以直接跳父亲xjb算一下,ghj发现这个【J】是个智障题,因为区间是套娃的,每个区间作为一个子问题,处理好嵌套关系然后直接大力阶乘就行。

卢姥爷交了两发B题然后发现假了,然后ls交了一个F发现也假了。ghj交了一个J发现也假了。心态究极爆炸然后开始坐牢。

ghj发现少写了个取模,喜提问罪,交上去过了;然后是卢姥爷的B,在经历一波赛博打印大眼分析后发现DP的一个范围写假了,改了改过了。然后ghj给ls重置一发F,交上去tle,发现本来是 \(O(T\log n)\) 的被重置成过不去的 \(O(T\log^2 n)\) 了,然后又改了改 \(O(T\log n)\) 过了。此时过去了2h。

然后从来不写计算几何的ls发现【K】好像是个不那么计算几何的计算几何,ghj开始写,然后ls因为太急把ghj换下去了,然后ghj因为太急跟ls吵起来了(具体为啥呢主要是一些处理方法)显然正方形的贡献可以在边上统计,圆形的贡献在格子内统计。对于一个边,如果他有贡献,那么他相邻两个格子被正方形占领情况的异或是1,并且他链接两个点没有圆,于是你对于每个正方形对四个格子标记个vis就行了,ls这人他非得看可能的正方形的点,不很麻烦吗。对于圆形的贡献,只需要统计每个格子在没被正方形占领情况下,四个角长啥样,如果是1个圆那么就\(\frac\pi2\) 如果两个相邻的就是 \(\frac\pi3\),其它情况都是0,然后处理一下6的逆元就可以了

最后又过了个【L】题,先骂一句输入数据的生成格式,虽然三个人都没被他困扰。卢姥爷发现这玩意好像DP可以写成矩阵乘法的形式,然后处理一个前缀和逆的前缀,再大力优化一下就可以了。然后先写了个朴素的5x5矩乘,然后跑一遍发现不对,一开始以为内存加爆了,后来发现操蛋矩阵乘法不支持交换律,左乘和右乘全写反了,注意如果你用列向量那么越靠后的转移应该写在左边,反之亦然,然后逆矩阵的乘法反之。然后发现矩阵都是下三角且对角线都是1,大力把25个元素优化成10个,开一个10元素的一维数组然后手动展开矩阵乘法,交上去就过了。最后也没用到数据随机的性质,可能就是为了给你出大数据用的。此时距离结束还有一个半小时。

然后发现【H】题过的人最多,然后讨论了一波发现点分治换根啥的好像都不行,遂弃疗。然后发现【D】似乎可做,考虑枚举 x和y 然后考虑其它 i和j 对其影响,但是对于 \(i\le x,y\le j\) 的情况他能做出来但是我就是推不出来我不会推,弃疗。

那么问题来了,ls的K题哪里假了呢?把一个大于等于号写成大于号了。ghj已经指出这好像有问题然而他浑然不觉。。

标签:ICPC2022,Contest,矩阵,然后,正方形,ls,Online,发现,ghj
From: https://www.cnblogs.com/oier/p/16730706.html

相关文章

  • ICPC2022 网络赛2 L
    L给一个长度为\(n\)的字符串\(s\),它只包含I,C,P三种字符。有\(q\)个询问,每次问\(s[l:r]\)子串中有多少个子序列是ICPC。\(n,q\leq2\times10^6\)题解硬算。固定I,P的......
  • AtCoder Beginner Contest 270
    AtCoder五十连练第一练AtCoderBeginnerContest270A-1-2-4Test考试有三道题,分别是\(1\)分、\(2\)分、\(4\)分。高桥、青木和Snuke参加了这次考试。高桥得......
  • AtCoder Beginner Contest 270
    A.1-2-4Test水题。B.Hammer分裂讨论。codeC.Simplepath一遍dfs就完了,怎么还有这种搜索题!codeD.Stones观察数据范围,\(O(NK)\)可过。\(dp_i\)表示\(i\)......
  • Leetcode weekly contest 312
    Leetcodeweeklyconetest3121.按身高排序解法:直接利用STL中的sort来自定义排序规则即可。Tag:自定义排序Code:classSolution{public:vector<string>so......
  • 【补题计划】NOI Online 2022
    【NOIOnline2022】补题记录入门组T1[NOIOnline2022]王国比赛lj小模拟一遍过(都没编译就交了)点击查看代码#include<iostream>#include<cstdio>#include<cmath>......
  • AtCoder Beginner Contest 270
    咕咕咕。D-Stones冲了发贪心,然后WA。然后想了个DP,就令\(dp_{n,0/1}\)表示石头总数为\(n\)时,先手/后手最多能拿多少个石头,然后跑个\(O(nk)\)的DP就完事了。......
  • Weekly Contest 311
    WeeklyContest311ProblemASmallestEvenMultiple思路水题,判一下奇偶就行代码classSolution:defsmallestEvenMultiple(self,n:int)->int:if......
  • AtCoder Beginner Contest 268(D-E)
    D-UniqueUsername 题意:给出n个字符串,以任意顺序排列,然后在每两个字符串中间加最少一个"_",然后给出m个字符串,问是否能得出一个字符串,不在这m个字符串中,并且长度在3-16......
  • NOI Online 2021
    普及切蛋糕(红)大力分讨点击查看代码#include<bits/stdc++.h>#definefffflush(stdout)#definethankputs("感恩......
  • AtCoder Beginner Contest 043 题解
    欢迎来到我的算法小屋前言 TaskNameAChildrenandCandies(ABCEdit)BUnhappyHacking(ABCEdit)CBeTogetherDUnbalancedA1)题目描述2......