- 2025-01-231.23
P3915树的分解-洛谷|计算机科学教育新生态(luogu.com.cn)这道题感觉更考到了递归的本质。我们说递归,我目前的理解是,把无数个相似的问题拆分成一个个个体,然后去依次分类解决,然后返回给上层,这么一个感觉。这道题难点虽然是普及难度,但是实话实说,我在树的方面基础还是比较薄
- 2025-01-23树的重心 图论
#define_CRT_SECURE_NO_WARNINGS#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;typedefunsignedlonglongull;constintN=5e4+10;vector<int>e[N];intcnt[N],sum,n,id=1,ans;voiddfs1(intu,intfa,intd){
- 2025-01-23rules
思路为了解决这个问题,我需要统计每天有多少人遵守了k规则,一共有多少天k规则是符合民意的代码#include<iostream>usingnamespacestd;intmain(){intn,m,k,cnt_m=0,cnt_n=0,temp_r;cin>>n>>m>>k;//n居民数,m天数,k规则for(inti=0;i<m;++i){cnt_n=
- 2025-01-23【基础】愤怒的奶牛 USACO c++
描述FarmerJohn建造了一个有N(2<=N<=100,000)个隔间的牛棚,这些隔间分布在一条直线上,坐标是x1,…,xN(0<=xi<=1,000,000,000)。他的C(2<=C<=N)头牛不满于隔间的位置分布,它们为牛棚里其他的牛的存在而愤怒。为了防止牛之间的互相打斗,FarmerJohn想把这些牛安置在指定的隔间,所
- 2025-01-23选择子序列再逆序
https://codeforces.com/problemset/problem/2063/B#include<bits/stdc++.h>usingnamespacestd;#defineendl'\n'usingll=longlong;usingpii=pair<int,int>;constdoublePI=acos(-1);constintN=1e5+10;constintmod=1e9
- 2025-01-22005. 机器翻译
005.机器翻译原题链接:P1540[NOIP2010提高组]机器翻译解题思路:开一个数组\(a[n]\)全部初始化为0,用来标记数字\(x\)是否在内存中,如果在就标记为1,如果要从内存删除就标记为0,然后开一个数组\(b[n]\)手搓队列(先进先出的数据结构)(当然这里用SQL也可以),这个队列用来表示内存满
- 2025-01-21神级STL结构-rope大法(学习笔记)
简介:他是一个\(STL\)中自带的一种数据结构,是pb_ds(Policy-BasedDataStructures)库的一个分支,由于他的底层是可持久化平衡树——红黑树,或块状链表。所以他的操作的复杂度几乎约等于\(O(logn)\)或\(\sqrtn\)。它可支持操作较多,完全可以理解成加强版的\(vector\)。最为抽
- 2025-01-219.树上问题
树上问题开题顺序:\(ALFBD\)\(A\)luoguP2515[HAOI2010]软件安装题解\(B\)CF494DBirthday将式子拆成\(2\sum\limits_{x\in\operatorname{Subtree}(v)}dis_{u,x}^{2}-\sum\limits_{i=1}^{n}dis_{u,i}^{2}\)的形式。\(\sum\limits_{i=1}^{n}dis_{u,i}^{2}\)换
- 2025-01-202024 (ICPC) Jiangxi Provincial Contest I 题 Neuvillette Circling题解
简单思路一个圆套中了几个点,如果不断缩小这个圆,那么最终的结果有两种有两个点卡住了这个圆,且这两点一定是直径有三个或者三个以上的点卡住了这个圆,圆心在这三个点围成的三角形的外接圆圆心。因此我们枚举两点作为直径,或者枚举三个点作为圆的内接三角形,求这个三角形的外接圆
- 2025-01-20VP AtCoder Beginner Contest 380
A-123233模拟即可。点击查看代码voidsolve(){intcnt[10]{};intn;std::cin>>n;while(n){ ++cnt[n%10]; n/=10;}for(inti=1;i<=3;++i){ if(cnt[i]!=i){ std::cout<<"No\n&qu
- 2025-01-208688 进击的奶牛
描述FarmerJohn建造了一个有 N(2≤N≤105)个隔间的牛棚,这些隔间分布在一条直线上,坐标是 x1,x2,⋯,xN(0≤xi≤109)。他的 C(2≤C≤N)头牛不满于隔间的位置分布,它们为牛棚里其他的牛的存在而愤怒。为了防止牛之间的互相打斗,FarmerJohn想把这些牛安置在指定的隔间,所
- 2025-01-19D. 摊位分配
你的做法模拟到了所有社团都至少分到了1个格子,用double实现会有精度问题,既然可以避免就避免吧题解则观察到了分界值和划分出的席位数之间良好的单调关系,采用二分的方法求解但这种做法有严重的精度问题,根源在于分界值趋近于0,可以通过取log或者拆分整数和小数的方法优化
- 2025-01-191.19
FBI树[P1087NOIP2004普及组]FBI树-洛谷|计算机科学教育新生态(luogu.com.cn)不用去建树,直接不断拆分递归,然后每次判断一下这个区间内有多少个1,0.感觉类似二分importjava.util.Scanner;publicclassMain{staticintn;staticStrings;publics
- 2025-01-19算法随笔_9:压缩字符串
上一篇: 算法随笔_8:寻找重复数-CSDN博客题目描述如下:给你一个字符数组 chars ,请使用下述算法压缩:从一个空字符串 s 开始。对于 chars 中的每组连续重复字符 :如果这一组长度为 1 ,则将字符追加到 s 中。否则,需要向 s 追加字符,后跟这一组的长度。压缩后得到
- 2025-01-18Codeforces Round 897 (Div. 2)
A.green_gold_dog,arrayandpermutation题意:给你一个数组\(a\),你要构造一个排列\(b\),使得不同的\(a_i-b_i\)尽可能多。我们按\(a_i\)从小到大分配\(n\)到\(1\),这样\(a_i-b_i\)一定大于\(a_j-b_j\)\((a_i>a_j)\)。点击查看代码voidsolve(){intn;std::cin>>n
- 2025-01-18Codeforces Round 997 (Div. 2) / 2056
A.ShapePerimeter难度(个人感觉)★☆☆☆☆思考:考虑平移Code:for(inti=0;i<N;i++){std::cin>>dx>>dy;if(i){cnt_dx+=dx;cnt_dy+=dy;}}ans=(m+cnt_dx+m+cnt_dy)*2;B.FindthePermutation难度(个人感觉)★☆☆☆☆思考
- 2025-01-182025-01-18:施咒的最大总伤害。用go语言,一个魔法师掌握了多种不同的咒语,每个咒语对应一个伤害值,这些伤害值存储在数组 power 中,其中可能会有多个咒语具有相同的伤害值。 使用某个特定伤
2025-01-18:施咒的最大总伤害。用go语言,一个魔法师掌握了多种不同的咒语,每个咒语对应一个伤害值,这些伤害值存储在数组power中,其中可能会有多个咒语具有相同的伤害值。使用某个特定伤害值为power[i]的咒语后,魔法师不能再使用伤害值为power[i]-2、power[i]-1、power[i]+1
- 2025-01-182025-01-18:施咒的最大总伤害。用go语言,一个魔法师掌握了多种不同的咒语,每个咒语对应一个伤害值,这些伤害值存储在数组 power 中,其中可能会有多个咒语具有相同的伤害值。 使用某个特定伤
2025-01-18:施咒的最大总伤害。用go语言,一个魔法师掌握了多种不同的咒语,每个咒语对应一个伤害值,这些伤害值存储在数组power中,其中可能会有多个咒语具有相同的伤害值。使用某个特定伤害值为power[i]的咒语后,魔法师不能再使用伤害值为power[i]-2、power[i]-1、power[
- 2025-01-18编程题-生成交替二进制字符串的最小操作数
题目:给你一个仅由字符'0'和'1'组成的字符串s。一步操作中,你可以将任一'0'变成'1',或者将'1'变成'0'。交替字符串定义为:如果字符串中不存在相邻两个字符相等的情况,那么该字符串就是交替字符串。例如,字符串"010"是交替字符串,而字符串"0100"不是。返回使s
- 2025-01-17【搜索】洛谷P1123 取数游戏
P1123取数游戏搜索顺序:按格子枚举。思想类比AcWing843.n-皇后问题按格子枚举方法,以及AcWing1116.马走日AcWing1117.单词接龙AcWing1118.分成互质组,体会恢复现场写在for循环内部与写在for循环外部的区别。最大的区别:恢复现场写在for循环外可以不用清空标记数组。
- 2025-01-17最小生成树
最小生成树[生成树]从一个无向连通图中选取一些边使这张图是一颗树。[最小生成树]在生成树的基础上使边权和最小。[Kruskal]寻找满足条件的边贪心,从未选取的边中选一条边权最小的边,选完后不出环即可。我们需要判断:1.当前最小边权的边。2.这条边所连接的两个点的连
- 2025-01-17907 骨牌覆盖
//907骨牌覆盖.cpp:此文件包含"main"函数。程序执行将在此处开始并结束。///*http://oj.daimayuan.top/course/22/problem/1047给定一个n×m的棋盘,你需要用1×2的多米诺骨牌去覆盖整个棋盘,请求出有多少种不同的覆盖方案。由于答案可能很大,请输出答案模109+7。输
- 2025-01-16leetcode第390场周赛
目录100245.每个字符最多出现两次的最长子字符串100228.执行操作使数据元素之和大于等于K100258.最高频率的ID100268.最长公共后缀查询leetcode第390场周赛100245.每个字符最多出现两次的最长子字符串题意给定一个长度小于等于100的仅由小写字母构成的字符串,请你
- 2025-01-16第一次
第一次1.神秘符文的重复序列 逻辑思维 #include<bits/stdc++.h>usingnamespacestd;intmain(){ intn,k; cin>>n>>k;//长度为n,重复k遍! strings; cin>>s; longlongintans=0; longlongintcnt=0; while(k--){//重复k遍 for(inti=0;i<n;i
- 2025-01-16VP Codeforces Round 911 (Div. 2)
A.CoverinWater题意:有n个格子,有些格子是好的,有些是坏的,你要给好格子都装上水,你可以花费一点价值让一个格子有水,也可以把一个格子的水移到另一个格子,没有花费。如果一个格子是好格子并且两边的格子都有水,这个格子就会自己填满水。问最少花费让所有好格子有水。容易想到,如果