AtCoder Beginner Contest 222 D - Between Two Arrays
    
            
摘要:题意 题解 公理1:此题支持O(N2)。 公理2:对于每个合法序列,其值单调不减。 灵感1(公理1):是否可以DP? 性质1(公理2):在一个序列不断"递增"的过程中,其能够选择的最小值单调不降。 公理3:方案数具有累加性,不具有后效性。 答案1(灵感1、公理3):可以保存下所有状态,状态设计为dp
        
阅读全文
 
        
            
    AtCoder Beginner Contest 225 D - Play Train
    
            
摘要:题意 题解 手动做链表模拟 #include<cstdio> #include<iostream> #include<vector> using namespace std; const int MAXN = 2e5; struct Car { int front, back; }tr[MAXN];
        
阅读全文
 
        
            
    AtCoder Beginner Contest 226 D - Teleportation
    
            
摘要:题意 题解 公理1:最小化操作次数。 公理2:巫师可以无限次跳跃,跳跃次数与输出的答案无关。 性质1(公理1、2):跳跃(a,b)可被优化为(a/gcd(a,b),b/gcd(a,b)),且答案不会变劣。 前置知识1:set<pair<int,int>>可自动去重,输出set.size()即可得到答
        
阅读全文
 
        
            
    AtCoder Beginner Contest 228 D - Linear Probing
    
            
摘要:题意 给定一个序列A和N=2^20,A的范围为[0,N-1],初始值均为-1。 操作1:设h=x(给出),如果a[h%MOD]!=-1就h+1,直到a[h%MOD] 1为止。之后,设a[h%MOD]的值为x。 操作2:输出a[x%MOD]。 数据范围:x>=0,保证操作1有答案。 题解 性质1:不能
        
阅读全文
 
        
            
    AtCoder Beginner Contest 229 D - Longest X
    
            
摘要:题意 给定一个只包含'X'和'.'的串和整数k,可以对串进行k次替换,每次把一个'.'替换成'X'。 串的长度和k的范围都是2e5级别。 问:替换完成后,最多有多少个连续的'X'? 题解 公理1:最多替换k次。 公理2:复杂度支持遍历串的所有'.',进行滑动窗口。 性质1:最终替换结果一定是"靠在"
        
阅读全文
 
        
            
    AtCoder Beginner Contest 230 D - Destroyer Takahashi
    
            
摘要:题意 给定N堵墙,一拳超人每次选一个范围攻击,如果某个墙有任意一格在这个范围内,这堵墙就销毁了。 求:最小的挥拳数量 题解 条件1:要打掉所有墙。 条件2:挥拳数量要尽量小。 条件3:一次挥拳只能销毁一定范围内的墙。 性质1:在挥拳数量尽量小的情况下,所有墙必须被销毁。 性质2:如果两次挥拳能够合并
        
阅读全文
 
        
            
    AtCoder Beginner Contest 226
    
            
摘要:题目链接:https://atcoder.jp/contests/abc226 Round decimals 题意:给定浮点数 x ,输出 x 四舍五入后的结果 思路:round(val) Counting Arrays 题意:给你 n 个长度为 li 的序列 ai ,判断有多少对 (i,j) 满足
        
阅读全文