Ch
  • 2025-01-08打卡信奥刷题(561)用C++信奥P7343[普及组/提高] 【DSOI 2021】电子跃迁
    【DSOI2021】电子跃迁题目背景“如果能证明大统一理论,这个世界将焕然一新。”“量子……量子……就差一点……”“嘶……哦。我想我明白了。”题目描述在你的视野下,出现了一排电子,他们分别拥有不同的能量。你需要做的是通过将相邻电子互换的方法,将电子排的有序。有
  • 2025-01-07CF2057E2 Another Exercise on Graphs (hard version) 题解
    感觉和[NOI2018]归程有点像(?考虑对每个询问二分答案,设二分到的答案是\(x\),要判断路径上的\(k\)大值是否能不大于\(x\),只需先将价值不大于\(x\)的所有边的边权设为\(0\),其他边设为\(1\),跑一遍\(a\)到\(b\)的最短路,看最短路长度是否不大于\(k\)即可。因为\(x\)的
  • 2025-01-07Luogu P3041 USACO12JAN Video Game G 题解 [ 紫 ] [ AC 自动机 ] [ 动态规划 ]
    VideoGamesG:弱智紫题,30min切了,dp思路非常板。多模式串一看肯定就是要建出AC自动机,然后在fail树里下传标记,预处理每个节点到达后的得分。然后设计\(dp_{i,j}\)表示第\(i\)个字符,AC自动机里匹配节点在\(j\)的最大答案,刷表法转移即可:\[dp_{i+1,ch_{j,c}}\gets\ma
  • 2025-01-07题解:P1541 [NOIP2010 提高组] 乌龟棋
    基础动态规划。这道题的题目条件显然满足阶段性和无后效性,那么有一个直观的思路就是把当前所处格子和四种卡片的使用次数作为状态。但是如果按照上面的想法,数组空间是无法开下的,所以我们稍微变一下思路,把四种卡片的使用数量作为状态,对于当前所处格子的话可以直接计算出来,这样数
  • 2025-01-07P8037 [COCI2015-2016#7] Prokletnik 题解
    题意定义一个区间$l,r$为好的当且仅当最小值为$a_l$且最大值为$a_r$或最大值为$a_l$且最小值为$a_r$。我们先考虑最小值为$a_l$且最大值为$a_r$的,另一个我们翻转过来在搞一遍就好了。先考虑将询问离线按$r$排序,容易发现,对于每个右端点$r$对应的合法左端点是
  • 2025-01-07将字符型数字转换成int型
    直接使用ASCII码字符数字的ASCII码和实际数字之间有一个固定偏移量,'0'的ASCII值为48。所以可以通过减去'0'来完成转换:charch='5';intnum=ch-'0';cout<<num<<endl;//输出:5在转换之前,可以使用std::isdigit检查字符是否为数字,避免意外输入导致错误。
  • 2025-01-06省选训练赛 #17 题目 D 补题记录
    具有一定Educational意义。题意:一张无向图,将其分解为若干组基环树森林,求至少需要分解多少组。\(n,m\le2000,\\sumn,\summ\le2\times10^4\)充分利用基环树森林的性质:若为内向基环树,那么每个点的出边至多只有一条。转化:我们相当于给图中的边定向,使得所有点出边数量
  • 2025-01-06编程题-删除字符串中所有相邻重复项
    题目:给出由小写字母组成的字符串 s,重复项删除操作会选择两个相邻且相同的字母,并删除它们。在s上反复执行重复项删除操作,直到无法继续删除。在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。解题:充分理解题意后,我们可以发现,当字符串中同时有多组相邻重复项
  • 2025-01-05线段树进阶练习专题
    小白逛公园题目大意:求一段区间里最大子段和思路:有空补(code:#include<bits/stdc++.h>usingnamespacestd;constintMAXN=500100;intm,n;inta[MAXN];inlineintread(){ intx=0,f=1; charch=getchar(); while(ch>'9'||ch<'0'){ if(ch==&#
  • 2025-01-05最大权闭合图
    0.前言参考文献:胡伯涛《最小割模型在信息学竞赛中的应用》本文总结了上书最大权闭合图一章节核心内容及其应用。如有错误请指出。1.最大权闭合图对于有向图\(G=(V,E)\)的一个子图,如果其点集\(V_1\)中点的后继都还在\(V_1\)中,则称其为原图的一个闭合图。而最大权闭合
  • 2025-01-05ABC387F
    题目还是很不错的。我们对于每一个\(i\),直接对\(a_i\)向\(i\)连一条边,很容易发现这是一个基环树。那我们直接按照套路来,考虑一个环对答案的贡献,显然环如果合法,则所有颜色相同,直接把它看成一个点即可。缩点后那剩下的解释一棵树了,我们考虑dp,设\(dp_{u,j}\)表示以\(u\)
  • 2025-01-04【题解】AT agc057A Antichain of Integer Strings
    记\(f(x)\)为最小的大于\(x\)的\(y\),使得\(x\)是\(y\)的子串。易得:\[f(x)=\min(10x,x+10^{|x|})\]其中\(|x|\)表示\(x\)的位数。可以发现,\(f(x)\)为一个严格单调递增的函数。考虑贪心策略,显然选小的数不如选大的数优,因为小的数更有可能成为别的数的子串。于是,我
  • 2025-01-0401.03 CW 模拟赛 T4. ring
    前言找原题未遂了()\(\rm{HD0X}\)大佬讲了没听懂啊思路无敌了,看起来似乎很困难,不知道补不补的掉首先发现不好处理成一种简单的问题,肯定是想有哪些方法可以处理这种问题\(\rm{TJ}\)的不太看得懂你可以树状数组维护区间和,每次对于一个环暴力修改\(\mathcal{O}(s
  • 2025-01-03树状数组的扩展
    二维区间修改+查询例题题目是求\(\sum\limits_{i=1}^n\sum\limits_{j=1}^ma_{i,j}\)我们可以定义一个差分数组\(d_{i,j}=a_{i,j}+a_{i-1,j-1}-a_{i-1,j}-a_{i,j-1}\)易知\(a_{i,j}=\sum\limits_{x=1}^{i}\sum\limits_{y=1}^jd_{x,y}\)接着我们可以利用差分来简化题意,我
  • 2025-01-02数据结构:串
    文章目录串的基本概念串的相关操作串的代码与运行结果串的基本概念1.串长:串的长度(字符个数)称作串长。2.空串:长度为0的字符串。3.主串:包含所有子串的串为主串。4.子串:串中任意连续的字符组成的子序列称为该串的子串。串的相关操作串的操作有生成串,复制串,串连接,
  • 2025-01-01超级树状数组
    超级树状数组,就是用树状数组来进行区间修改+区间查询操作的东西,好处是和线段树相比快了不少。例题首先先来复习一下普通的树状数组inttree[MAXN];intlowbit(intx){ returnx&-x;}voidupdate(intx,intd){ while(x<=n){ tree[x]+=d; x+=lowbit(x);
  • 2025-01-01用仓颉完成编译原理实验-正规式转NFA转DFA
    目录实验目的实验要求1.输入输出要求:2.算法要求:3.数据结构要求:算法描述正规式转NFA算法描述NFA转DFA算法描述测试结果实验随手记对仓颉的感受实验目的1.掌握正规表达式与有限自动机的基本概念和转换方法。2.了解非确定有限自动机(NFA)的构建过程。3.熟悉编
  • 2024-12-31迭代法将十进制转换为R进制
        在迭代法中,从一个初始猜测值(或称为初始迭代点)开始,根据某种迭代规则(或称为迭代公式)计算出下一个近似解,然后用这个新的近似解作为下一次迭代的起点,如此反复进行,直到满足某个停止准则为止。这个停止准则通常基于迭代结果的精度要求或迭代次数的限制。    如果
  • 2024-12-30CF2053F Earnest Matrix Complement 题解
    我也不知道显不显然,有一个重要性质是:一定存在一种最优方案,使得每一行的\(-1\)填的都是同一个数。证明的话直接调整即可,假设现在我们有一个最优方案,并且第\(i\)行填着不同的数,我们将每一种颜色\(u\),按\(c_{u,i-1}+c_{u,i+1}\)排个序,意思就是每多一个颜色\(u\)都会加上
  • 2024-12-29学习笔记:旋转treap
    前言更好的阅读体验。无旋treap。默认读者会BST的基本操作、堆和旋转。本文旋转部分和上面那篇文章的相同。代码中是小根堆。思想treap既是一棵二叉查找树(tree),也是一个二叉堆(heap)。但是如果这两个数据结构用同一个权值维护,那么这两种数据结构是矛盾的。所以treap用
  • 2024-12-29最早发明的自平衡二叉树:AVL
    前言更好的阅读体验默认读者会基本的BST操作。节点定义平衡因子:BF(BalanceFactor),左子树高\(-\)右子树高。平衡树是让树的形态尽可能像完全二叉树,而不是链。在AVL中,我们认为\(\left|\text{BF}\right|\le1\),也就是BF为\(0,1,-1\)时的子树是平衡的,否则就是不平衡
  • 2024-12-29shell -if语句
    if语句格式如果表达式为"真",执行语句,否则什么也不做,代码结构如下/*if(表达式)语句——又称then语句*/if语句示例统计输入符中的空格数和总字符数#include<iostream>constintCities=5;constintYears=4;​intmain(){usingstd::cin;usingstd
  • 2024-12-29COCI 2024/2025 #3
    T1P11474[COCI2024/2025#3]公交车/Autobus愤怒,从红升橙足以说明其恶心,考场上调了半小时才过。这道题的车能够开\(24\)小时,并且他能从前一天开到第二天,由于它只能开\(24\)小时,所以说发车时间的时刻晚于或等于到达时间,说明他开了一天,由于这个,所以我们要处理\(3\)天的
  • 2024-12-29C++(getchar())
    目录1.函数原型2.功能3.常见用法4.与getchar()的区别5.处理输入错误6.注意事项7.总结getchar()是C和C++中的一个标准输入函数,定义在头文件<cstdio>或<stdio.h>中。它用于从标准输入流(通常是键盘)读取一个字符。1.函数原型intgetchar(void);返回值:成
  • 2024-12-28007. 求m区间内的最小值(洛谷P1440)
    007.求m区间内的最小值(洛谷P1440)题目描述一个含有\(n\)项的数列,求出每一项前的\(m\)个数到它这个区间内的最小值。若前面的数不足\(m\)项则从第\(1\)个数开始,若前面没有数则输出\(0\)。输入格式第一行两个整数,分别表示\(n\),\(m\)。第二行,\(n\)个正整数,为所给定的