自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 XOR on Grid Path abc271F 双向bfs

题面https://atcoder.jp/contests/abc271/tasks/abc271_f。

2022-10-01 21:58:55 240 1

原创 Winning an Auction 博弈dp

博弈的重点是,每次对新的一句博弈a,b分别拿出多少来争取新的这局,最后结果如何。显然拿出东西来博弈,结果还不如不拿,那就没必要继续拿东西出来了。t组样例,每组给n轮,一人有a钱,一人有b钱,问最后结果。

2022-09-14 16:58:37 143

原创 Interactivity 树形dp

给一棵树,每个节点权值为子节点权值和,求在给出最少节点数能推出该树情况下,有多少给定权值方案。考虑节点x,c[x]表示显然有f[u1]*…*f[un]/f[ui]一颗子树未知,一定是从该子树根由某一条路径延申到叶子节点均未知。考虑上述性质,我们使x点已知,则f[x]=f[x]+c[x]设节点x,有子节点u1…un,设数组f表示已知,c表示未知。子节点全知,x显然也知道了,f[x]=f[u1]数量一定是整棵树叶子节点数,做不到更少。用两数组表示该点权值已知和未知方案数。.........

2022-08-30 21:17:48 109

原创 博弈论 Game of Baker

【代码】博弈论 Game of Baker。

2022-08-22 21:53:58 98

原创 欧拉筛+容斥原理

【思路】只要一个数的某个质因数个数大于等于2,那么这个数一定是讨厌的数(此时你一定能找出一个比他小并且能被他整除的数)简单的想,i从2到根号n,能筛出n/(i*i)个这样的数结合欧拉筛和容斥原理,避免重复的筛选...

2022-08-06 19:41:20 56

原创 给出多个子区间和最大值限制,求总区间和最值

题意转化为-->对一个单调不减序列,给出m对r最多比l-1多v的(l,r,v),求s[n]的最大值,如果无限大,那么输出NO。转化为-->图的思维,就是对0到n这n-1个点,给出了m条边,给出边的最大值求满足所有条件的d[n],实际上就是求到0到n的最短路。对前缀和数组,每给出一个区间和(l,r,v),就是指s[r]比s[l-1]最多可以多v。至此,该题奇迹般的转化为一个最短路的模板题。...

2022-08-01 20:08:21 232

原创 剑指 Offer 56 - II. 数组中数字出现的次数 II

在一个数组 nums 中除一个数字只出现一次之外,其他数字都出现了三次。请找出那个只出现一次的数字。有限状态自动机,思路详情课参考力扣题解。用两位数字模拟三进制计数器。class Solution {public: int singleNumber(vector<int>& nums) { int x=0,y=0; for(int i:nums){ x=(x^i)&(~y); y=(y

2022-04-18 20:51:42 106

原创 剑指offer33 判断二叉搜索树的后序遍历

单调栈解法:后序遍历:左 右 根反转后:根 右 左首先给一个极大值,另其为根节点,那么所给的二叉树为其左节点。那么维护递增单调栈,递增过程就是 根 右 过程,不满足一定是到左了,退栈过程得出他的根,这时再往后的节点一定是根的左节点,否则不是后序遍历。现在又到了一个左节点,那么我们重复上述过程,实际上也就是是一个递归过程。...

2022-04-17 01:02:35 364

原创 力扣310 最小高度树

给一树,求以那些点为跟树的高度最小思路:(bfs)任选点p找出最远点x,从x找出最远点y,xy即为最长路径,其中点即为答案。int findLongestNode(int u, vector<int> & parent, vector<vector<int>>& adj) { int n = adj.size(); queue<int> qu;qu.emplace(u); vector&

2022-04-06 16:35:00 58

原创 第十二届蓝桥杯 括号序列 dp

不是特别理解,譬如()时答案是1但是过评测机是没问题的。可能给出的数据都是至少需要添加一个。代码是照猫画虎写了一份,似懂非懂。首先()等价,不可能让你加一个()这种匹配的,所以答案是两者乘积处理一个,另一个倒转再相同处理即可先处理加(的情况dp[i][j]表示第i个字符(比)多j个的添加方法数转移方程:当前为(:f[i][j]=f[i-1][j-1]这时我们不加(因为加在哪都一样所以我们统一加载)左侧当前为):f[i][j]=(f[i-1][j+1]+f[i][j-1])%mod f[.

2022-04-05 19:32:00 426

原创 2021杭电1 1006 xor sum

【题目】给定n个数和一个数k,求出最短的连续的一段数,使得它们的异或和大于等于k,如果没有则输出-1。其中1<=n<=1e5,0<=k, ai<=2^30【思路】用字典树(01树)保存 前缀亦或a[]每次插入时更新mx[] 使之为最右a[i]即 i最大每次遍历时只遍历与当前a[i]亦或值大于等于k的,同时更新res(对于当前i的最右值)当i-res<当前最小值时,更新答案复杂度(nlogn)【代码】#include<bits/stdc++.h&gt

2021-07-24 09:42:29 92

原创 过生日

题目描述】在一个有180人的大班级中,存在两个人生日相同的概率非常大,现给出每个学生的名字,出生月日。试找出所有生日相同的学生。【输入】第一行为整数n,表示有n个学生,n ≤ 180。此后每行包含一个字符串和两个整数,分别表示学生的名字(名字第一个字母大写,其余小写,不含空格,且长度小于20)和出生月(1 ≤ m ≤ 12)日(1 ≤ d ≤ 31)。名字、月、日之间用一个空格分隔【输出】每组生日相同的学生,输出一行,其中前两个数字表示月和日,后面跟着所有在当天出生的学生的名字,数字、名字之间都用

2020-11-27 21:10:37 731 2

原创 一些笔记 c++

%俩边只能为整型printf/scanf:%*2d 跳过此输入/输出%d,%d 输入 a,b输入 限定域宽/非法 时输入自动结束%nd 右对齐 %-nd左对齐保留小数:% f 小数保留6位 四舍五入%.mf 保留m位小数(四舍五入?)另:头文件 < iomanip >setprecision(2) 小数点后保留2位%c %s %x 字符 字符串 十六进制输出整数“%%” “\" “”" 输出特殊字符头文件 < algorithm >swap(a,b) m

2020-10-16 22:10:37 78

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除