• 2024-10-03多重背包
    intw[maxn],v[maxn];//w[i]代表第i种物品价值v[i]代表体积intf[maxn][maxm];//前i种物品用了j的体积所能得到的最大价值intcnt=0;//总共拆成了多少个物品for(inti=1;i<=n;++i){intw,u,v;//价值,个数,体积cin>>w>>v>>u;intk=1;//先拆
  • 2024-10-03DAY3-补题
    一题之计在于补呐补题很快乐的一点就是看不懂且听不明白但是写注释中理解到了。果然学会一道题最简单的方式是给一个纯萌新讲。说在前面今天%你赛手感非常好,可能是换了一个位置的原因(玄首先T1没有读错题是一个比较大的进步,因为DAY1和2都是因为差不多这个原因寄掉了,读对题目果
  • 2024-10-03补题报告3
    背景2024-10-3上午打的比赛(CSP-J模拟2),作赛后总结报告。IP地址(\(ip\))赛时AC。概述每个设备有一个对应的\(IP\),先给出对应的设备与\(IP\),再给出几个\(IP\),求对应的设备。思路\(map\)存储,映射我的代码代码(点左边三角展开)#include<map>#include<cstdio>#includ
  • 2024-10-02P4491
    还好有题解,公式不用自己推了#include<bits/stdc++.h>usingnamespacestd;constint_G=3,mod=1004535809,Maxn=135000,MaxNum=10000500;longlongpowM(longlonga,intt=mod-2){ longlongans=1; while(t){ if(t&1)ans=ans*a%mod; a=a*a%mod; t>>=1; }
  • 2024-10-022024初秋集训——提高组 #29
    C.卡片放置题目描述有一些卡片,写着两个数字\(A_i,B_i\)。你要将这些这些卡片排列,其对于你的分数为\(\max(A_i,B_i)\cdoti\),对于对手的分数为\(\min(A_i,B_i)\cdot(N-i+1)\)。求令你的分数减对方分数的最大的方案数。思路我们来拆式子,这里令\(A_i\geB_i\):\[\begin{arr
  • 2024-10-02补题报告2
    背景2024-10-2上午打的比赛(CSP-J模拟2),作赛后总结报告。下棋(\(chess\))赛时AC。概述高星\(x\)中星\(y\)低星\(z\)\(3\timesz=y\)\(3\timesy=x\)阵容强度:\(18\timesx+3\timesy+z\)求转换完后强度的顺序思路1.将能转的低星英雄转高星2.结构体排序输出
  • 2024-10-02DAY2-补题
    我补题AK了,但你出言不逊是非常好的一套题,让我的大脑旋转啊。不太想开一个文章单独屑,所以扔到随笔里面。敲字速度有待加强。说在前面题目难度单调递减,分数单调递减。果然屑死了。T1再次读题失误,正确的来说是代码敲得非常抽象。T2DP但没骗到分非常不好,T3场上想出正解了,但推一
  • 2024-10-02Solution - Atcoder ARC157E XXYX Binary Tree
    考虑这个不存在\(\texttt{YY}\)的限制,与\(\texttt{XX}\)个数为变量的限制相比较,看起来\(\texttt{Y}\)就更特殊,于是考虑从\(\texttt{Y}\)的视角来分析问题。同时考虑到因为有\(A+B+C=n-1\),所以\(\texttt{XX}\)其实也不是很重要,因为只需要让\(\texttt{XY}\)和
  • 2024-10-02Solution - Atcoder ARC157D YY Garden
    考虑到因为有横轴数轴两部分的限制,不妨先固定下来一部分的限制再处理另一部分。对于这题来说横轴竖轴本质是相同的,于是不妨考虑固定横轴。如果知道了横轴的分割,那么对于竖轴上就可以根据分割情况知道合法的分割了。即考虑记\(f_i\)为考虑了竖轴的前\(i\)列,第\(i\)列为最
  • 2024-10-02Wooden Game
    在题目营造的幻象之下,拨开迷雾,探寻背后的本质既然执行逻辑没问题,就一定是算法逻辑出了漏洞点击查看代码#include<bits/stdc++.h>usingnamespacestd;vector<int>a[30];intmaxn;voidadd(intn){ if(!n) { return; } intp=31-__builtin_clz(n); maxn=max(max
  • 2024-10-01题解 P2726 【[SHOI2005]树的双中心】
    首先,我们会有一个很简单的想法,枚举断边,产生两棵子树,然后在两棵树内分别求带权重心,计算贡献,这样的话复杂度是\(O(n^2)\)的。那么我们要好好利用$h\leq100$的性质。考虑\(sze[u]\)为带权重量,\(g[u]\)为以\(u\)为根的树,所有点都到\(u\)的代价。所以\(g[u]=\sum\l
  • 2024-10-012024初秋集训——提高组 #28
    B.车轮战题目描述你将进行\(N\)场决斗。一开始你的战斗力为\(s\),咒术强度为\(x\)。每次决斗之前你可以选择:令\(s\leftarrows+x\)。令\(x\leftarrowx+1\)。每次决斗,如果你的\(s\gef_i\),则你赢得决斗。求最多能赢多少场决斗。思路我们可以发现,你最多会进行\(80
  • 2024-10-01ABC225F String Cards
    题意给你\(n\)个串\(s_i\),你需要选出\(k\)个串并按照某个顺序拼接起来形成的字符串字典序最小。\(n,k,|s|\le50\)。分析由于顺序不固定,所以我们无法直接DP。而状压的复杂度也太高了,怎么办呢?考虑钦定一个顺序,使得按照这个顺序排列字符串一定最优。一个经典的错误想法
  • 2024-10-012024初秋集训——提高组 #21
    B.网格游走题目描述你在一个\(r\timesc\)的网格图的\((1,1)\)处。每个格子上都有一个箭头和计时器,一开始,箭头等概率地指向右/下方,计时器上等概率地显示\([0,p]\)中的一个实数。当计时器归零时,箭头指向的方向会翻转,即向右变成向下,向下变成向右,并且计时器会重置为\(p\)。
  • 2024-09-30csp-s模拟7
    这次状态不是很好,冲着T1磕了4个小时,后仨题看都没看。。。A.median去他丫的容斥,考虑排序,一个数作为中位数的方案数就是他左边有俩不同类型的数和右面有俩不同类型的数的总和枚举哪些类型左边哪些右边,对每一位计算贡献就可以了,要提前预处理出来个数。(有没有好心人看看我代码哪
  • 2024-09-302024初秋集训——提高组 #23
    C.前缀题目描述给定一个字符串\(S\),你会将这个字符串无限循环,即变成\(S+S+S+S+\dots\)。接着给定一个字符串\(T\),你要求最短的一个\(S\)的前缀使得其中存在一个子序列\(T\),若\(T_i=*\),则这一位是什么都可以。但由于\(T\)太长了,所以其中有一些字符后会有数字,表示这个
  • 2024-09-30Codeforces Round 975 (Div. 2)
    C.CardsPartition(C)对于每个确定的size,有便捷的方法判断该值是否合法:组数最小为\(a_{max}\),若\(k\)张牌可以填出\(a_{max}\)组牌堆则合法;将余下的牌当成新的一组,若\(k\)张牌可以凑出一整组则合法;其余情况不合法。由于check过程为\(O(1)\),可从大到小暴力枚举size,时间
  • 2024-09-30来欣赏10k分讨T1代码
    点击查看代码#include<bits/stdc++.h>#define_num[i]usingnamespacestd;constintmaxn=1e5+9;constintmod=998244353;intn,cnt,ans,s[7][maxn],num[maxn<<3];intlow(intx,intid){returnlower_bound(s[id]+1,s[id]+n+1,x)-s[id]-1;}intup(intx,int
  • 2024-09-29DMOJ
    B.InfinityCardDecks题目描述有\(N\)张牌,第\(i\)张牌打出需要\(A_i\)能量,获得\(B_i\)能量。一开始你有\(M\)的能量。如果一些牌,无论怎么无限的按照随机顺序打出,都不会缺少能量,则我们称这是一个无限牌组。求有多少个子区间是无限牌组。思路很容易想到,一个无限牌
  • 2024-09-292024 Noip 做题记录(三)
    \(\text{ByDaiRuiChen007}\)Round#9-2024.9.23A.[P10849]LevelProblemLink题目大意给定若干人和空位,等级\(1\simn\),其中等级为\(i\)的人和空位分别有\(b_i,a_i\)个,给每个人匹配一个位置,如果一个等级为\(i\)的人匹配了一个等级为\(j\)的位置,会产生\(\ma
  • 2024-09-29「Wdoi-(-1)」恋弹者们的黑集市
    「Wdoi-(-1)」恋弹者们的黑集市魔理沙有两种方法移动这个骰子:将骰子向下一列翻转,或者向下一行翻转。值得注意的是,翻转骰子后,骰子每面上的数字就会随着翻滚而改变。现在魔理沙需要将骰子滚动至第\(n\)行第\(m\)列。魔理沙的分数被定义为,所有时刻,骰子与棋盘上的数字接触的那一
  • 2024-09-29ABC 373(D-F)
    https://atcoder.jp/contests/abc373/tasksD:搞不清楚dfs还是bfs真的是有点太抽象(一直在想bfs)。每个点只要访问过就不再访问第二次直接dfs可过。#include<bits/stdc++.h>usingnamespacestd;#defineintlonglong#definepbpush_back#definepiipair<int,int>#define
  • 2024-09-29Codeforces Round 975 (Div. 2) A~F 题解(Div.1 A~D)
    CodeforcesRound975(Div.2)A~F题解(Div.1A~D)也是补完整场了。A.MaxPlusSize枚举最大值的位置,使长度最长,更新答案。B.AllPairsSegments每个线段内部的点的答案都是一样的,在处理一下线段两边边界的点。被包含次数就是左边\(\times\)右边。用\(map\)记录答案
  • 2024-09-29The 2023 ICPC Asia Jinan Regional Contest (The 2nd Universal Cup. Stage 17: Jinan)
    赛时4题,策略重大失误,g题思路假了但是以为是代码问题硬调3.5h,m题本来是可以过的,e是网络流说不定也能过呢。xixike大力平衡树直接打过k题省去思考双优先队列算法的时间,太强A观察到同级同形状括号如果有四个就一定可以交换顺序,而且是充要的,经典括号匹配用栈存储就过了,我代码比较丑
  • 2024-09-292024初秋集训——提高组 #24
    A.平滑数列题目描述我们定义一个正整数数列是平滑的当且仅当任意两个相邻元素的差\(\le1\)。求长度为\(N\)的字典序第\(K\)小的平滑数列。思路首先我们做一个\(dp\):求出长度为\(i\)的首项为\(j\)的平滑数列数量,这里\(j\)只用枚举到\(i\)就足够了,因为\(j>i\)