• 2024-07-17SMU Summer 2024 Contest Round 4
    1.HandV原题链接:http://162.14.124.219/contest/1008/problem/B二进制枚举行列即可查看代码#include<bits/stdc++.h>#defineintlonglong#definePIIpair<int,int>usingnamespacestd;intn,m,k;chara[10][10];signedmain(){ios::sync_with_stdio(fals
  • 2024-07-17洛谷 P10716 【MX-X1-T4】「KDOI-05」简单的字符串问题
    洛谷传送门一个\(A\)合法的充要条件为:\(A\)为\(S_{1\simi}\)的一个border;\(A\)在\(S_{1\simi}\)中不重叠地出现\(\gek\)次。建出失配树后,发现合法的\(A\)在树上组成一条某个点\(u\)到根的链,且\(u\)为\(i\)的祖先。因此我们若知道\(u\),答案就是\(d
  • 2024-07-17题解:AT_abc360_c [ABC360C] Move It
    背景机房大佬掉大分了,乐悲。题意给你几个箱子和每个箱子里装有的东西\(a\)和对应的重量\(w\),现在要让每个箱子里都装有一个东西,每次可以移动任意一个箱子中的任意一个东西,代价为它的重量,问最小代价。分析贪心。首先最终状态里所有箱子一定只有一个东西,那么对于所有装东西
  • 2024-07-17题解:P10723 [GESP202406 七级] 黑白翻转
    背景汗流浃背了。分析容易想到一个显然的思路:以任意节点为根,开始遍历。如果一个节点的子树里面有黑点,那么它必须保留,否则如果它是白点,则可以删去。但这个方法很容易举出反例:在这颗树中,如果以最上面的白点为根,那么手推发现算法显然错误。尝试进行修改,容易发现,对于类似的情况
  • 2024-07-17题解:P10722 [GESP202406 六级] 二叉树
    题意一颗\(n\)节点的二叉树,每个节点非黑即白,给你\(Q\)次操作,每次给你一个\(u\),把\(u\)的子树内所有节点颜色反转,问最终每个节点的颜色。分析看到数据范围,首先把操作离线。容易发现如果一个节点重复操作奇数次,等效于操作一次,如果重复操作偶数次,等效于没操作。所以我们可
  • 2024-07-17题解:P10672 【MX-S1-T1】壁垒
    暑期集训=依托答辩。分析种类数是奇数一定无解。否则每种数字先输出一次,在此过程中每增加两个数时,因为每个数字种类数都不一样,所以前缀种类数也同时增加\(2\),保证一定为偶数。然后输出完以后,设总种类数为\(m\),无论以后再怎么加入新数字,前缀种类数一定为\(m\)不变,后面数字
  • 2024-07-17UNR #8 部分题题解
    由于博主水平有限,目前只有\(A,B,D\)题题解。A.最酷的排列题目描述\(T\)组数据,给定长为\(n\)的序列\(a\)和下标集合\(S\),你可以对序列进行任意次操作,每次选择一个区间并将其中元素升序排序。求\(\sum\limits_{i\inS}a_i\)的最小可能值。数据范围\(1\len,\sum
  • 2024-07-16[[BJWC2012] 冻结]
    [BJWC2012]冻结题目大意在能有\(k\)次机会使得某些道路变为其\(\frac{1}{2}\)长度的情况下,求\(1\)到\(n\)的最短路做法其实就是分层最短路的模板题,有\(k\)次机会减少,那么对于一个点来说就有可能是在这前使用了\(0\)~\(k\)次减少的机会到达的,每个点都有\(k\)个分身,故要建\(k+1
  • 2024-07-15第一周
    弗洛伊德基本思想弗洛伊德算法作为求最短路径的经典算法,其算法实现相比迪杰斯特拉等算法是非常优雅的,可读性和理解都非常好。基本思想:弗洛伊德算法定义了两个二维矩阵:矩阵D记录顶点间的最小路径例如D[0][3]=10,说明顶点0到3的最短路径为10;矩阵P记录顶点间最小路径中的中
  • 2024-07-14Toyota Programming Contest 2024#7(AtCoder Beginner Contest 362)
    ⚪题和板题大赛/jk好像能切的样子,但是太菜了,唐了8罚。A-BuyaPen输出除去某个颜色以外,其他颜色代表的最大值。点击查看代码#include<bits/stdc++.h>usingnamespacestd;inta,b,c;strings;signedmain(){cin>>a>>b>>c;cin>>s;if(s[0]=='R')a=103
  • 2024-07-13Solution - Atcoder AGC021D Reversed LCS
    考虑到\(\operatorname{LCS}(T,T')\)这个形式实在是不太优美,考虑转化一下形式。感受一下,能够知道\(T\)的最长回文子序列\(|\operatorname{LPS}(T)|=|\operatorname{LCS}(T,T')|\)。具体证明可以见zhihu,本人暂时还没看懂。那么接下来对于单个串的\(\operatorname{LPS
  • 2024-07-13P2120 [ZJOI2007] 仓库建设
    题目大意\(n\)个工厂,每个工厂有\(p_i\)的货物,货物运输一个单位距离的费用是\(1\),工厂可以建造仓库,费用为\(c_i\)。工厂与工厂\(1\)的距离为\(x_i\)。要求将货物运送到下一个最近的仓库,求最小费用。\(1\leqn\leq10^6\)思路先考虑最基本的动规:设\(f_i\)表示在这里
  • 2024-07-127.12 模拟赛总结
    这是暑假的第一个模拟赛,和新高一的一起打的T1T2T3T4tot50pts45pts100pts0pts195tps总的来说不是很满意,最近的状态有点低迷,但考虑到刚刚结束文化课还是情有可原,一切都会好起来的!T1[USACO09DEC]CowTollPathsG题意:给定\(n,n\le300\)个点,\(m,m\le1e4
  • 2024-07-12Solution - Atcoder ARC127E Priority Queue
    考虑转化一下,每个最后留下来的集合都相对的对应着一个被删除的集合。于是考虑去对被删除的数去计数。然后贪心的,去让每一次\(2\)操作删除的数都是前面加入中还剩下的最后加入的数(因为有的可能被前面的\(2\)操作删了)。对于证明,考虑到如果不是剩下的最后加入的,那么中间可能会
  • 2024-07-11P3825 [NOI2017] 游戏
    题目大意有四种类型的比赛\(x,a,b,c\),三种赛车(\(A,B,C\))。其中\(x\)的数量为\(d\)。\(x\)表示三种赛车都可以选,\(a\)表示\(A\)种不能选,\(b\)表示\(B\)种不能选,\(c\)表示\(C\)种不能选。现在要比\(n\)场,有\(m\)个限制形如:\(p,f,q,t\)表示如果第\(p\)
  • 2024-07-102024/7/10 笔记
    CF1693F对0,1个数相等的0,1串进行排序一定是最优的贪心策略。我们把0记为1,1记为-1.求前缀和如果1的个数大于0的个数,那么就把整个串翻转然后取反,推一下就可以知道结果不会变。CF1646F这题我写了半天发现假了;一开始看了样例很容易想到,每个人每轮都把自己不需要的牌往下
  • 2024-07-092024/7/9 noip模拟鳃
    T130pts教训:存图双向边数组要开2倍(就是这么简单!)还害得我调了半个小时才发现,改后accode:usingnamespacestd;intn,a,b,anode,bnode;constintmaxn=1e6+10;structedge{ intto,next;}e[maxn];intnodeflag=-1;inthead[maxn],siz[maxn],cnt,ans[maxn];voidadd
  • 2024-07-09学习老算法,争做老东西
    目录DancingLinksDancingLinks考虑这样一个问题:给定一个\(N\)行\(M\)列的矩阵,矩阵中每个元素要么是\(1\),要么是\(0\)。你需要在矩阵中挑选出若干行,使得对于矩阵的每一列\(j\),在你挑选的这些行中,有且仅有一行的第\(j\)个元素为\(1\)。这类问题统称为精确覆盖问
  • 2024-07-09哪里错了啊
    #include<bits/stdc++.h>usingnamespacestd;constintMAXN=1000005;intn,k,a[MAXN],len,ans[MAXN],cur,sum[MAXN];intm;intpin[MAXN];structc{intl,r,idx;}q[MAXN];boolcmp(ca,cb){if(a.l/len!=b.l/len){
  • 2024-07-0920240709比赛总结
    T1超市抢购https://gxyzoj.com/d/hzoj/p/3765仔细读懂数据生成器,就能看出来,实际上物品肯定是够用的因为只能从右向左搬运物品,所以我们只需要对于每一个i,i+1的间隔,考虑有多少个物资需要从右边搬到左边去,把这个贡献累加即可代码:#include<cstdio>#include<algorithm>#define
  • 2024-07-08Solution - Atcoder ARC150D Removing Gacha
    考虑到每次操作都比定会选上一个点,于是答案可以表示为每个点被选中的次数之和。即令\(c_i\)为\(i\)点被选中的次数,答案即为\(E(\sum\limits_{i=1}^nc_i)\)。根据期望的线性性,考虑把答案的\(E\)拆到每个\(c_i\)上,即变为\(\sum\limits_{i=1}^nE(c_i)\)的形式。
  • 2024-07-08北京一零一中2024年信息学迎新马拉松解题报告
    AT469715[2024迎新马拉松]101相当于选择一段长度为\(3k\)的区间使得变化的总值最小。维护每一个元素变化到\(1\)与\(0\)的要求数量,之后前缀和处理即可。#include<bits/stdc++.h>#defineendl"\n"usingnamespacestd;typedeflonglongll;constllMAXN=1e6+5;
  • 2024-07-07【DFS】深度优先搜索 洛谷选数例题讲解
    DFS深搜选数问题看一看题
  • 2024-07-07决策单调性优化
    决策单调性优化对于最优化DP来说,即决策点具有单调性。代码实现分治以P5503[JSOI2016]灯塔为例。答案\(p_i=\max\{\lceilh_j-h_i+\sqrt{|i-j|}\rceil\}\)。去除绝对值,分到两种情况中去做,可以先不用考虑上取整,输出时再做即可。我们先考虑\(j\leqi\)的情况,对
  • 2024-07-07高精度
    高精度高精度,即无法使用C++本身配置的数据类型中使用的运算高精度加法例题:P1601A+BProblem主要方法:使用字符串存储数字转换为整型数组模拟竖式加法逆序输出Code#include<iostream>usingnamespacestd;#defineMAXN10005strings1,s2;inta[MAXN],b[MAXN],c