自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 leetcode 第133场双周赛 100333.统计逆序对的数目【计数dp/滚动数组/前缀和优化】

逆序对 计数dp 滚动数组 前缀后优化

2024-06-30 04:08:23 1026

原创 leetcode 热题 100(部分)C/C++

leetcode 热题100

2024-04-01 18:21:12 849

原创 动态规划 DP专题

动态规划

2022-11-28 20:41:24 402 1

原创 Codeforces Round #833 (Div. 2)

Codeforces Round #833 (Div. 2)

2022-11-14 20:27:27 563

原创 第十九届同济大学程序设计竞赛 D两串糖果 【区间dp】

区间dp

2022-11-11 19:41:16 235

原创 daimayuan464. 数数 【离线+离散化+树状数组】

离线+离散化+树状数组

2022-11-11 19:18:16 155

原创 数据结构 【树状数组】【线段树】【珂朵莉树】

数据结构树状数组,线段树,珂朵莉树

2022-11-11 18:07:40 459

原创 单调队列/单调栈优化dp

单调队列/单调栈优化dp

2022-11-03 19:41:13 1157

原创 AtCoder Beginner Contest 275 【E】【F】

AtCoder Beginner Contest 275

2022-10-30 01:21:46 405

原创 2021 ICPC 沈阳站 【L Perfect Matchings】 树上背包(树形dp)+容斥原理

2021 ICPC 沈阳站 L Perfect Matchings 【树上背包(树形dp)】【容斥原理】

2022-10-28 18:43:03 1030

原创 Codeforces Round #829 (Div. 2)

Codeforces Round #829 (Div. 2)

2022-10-26 21:39:01 399

原创 AtCoder Beginner Contest 274 D E F

AtCoder Beginner Contest 274

2022-10-26 08:41:20 387

原创 Educational Codeforces Round 138 (Rated for Div. 2)

Educational Codeforces Round 138 (Rated for Div. 2)

2022-10-21 18:46:26 448

原创 Codeforces Round #826 (Div. 3) D E F

Codeforces Round #826 (Div. 3)

2022-10-19 14:22:04 478

原创 FFT 快速傅里叶变换 && NTT 快速数论变换

FFT && NTT

2022-10-18 19:08:03 535 1

原创 Codeforces Round #825 (Div. 2)

Codeforces Round #825 (Div. 2)

2022-10-13 20:44:21 564 2

原创 Miller_Rabin质数判定 & Pollard_rho质因数分解 【POJ1811】 (2022CCPC网络赛H)

Miller_Rabin质数判定Pollard_rho质因数分解

2022-10-13 19:14:15 170

原创 The 2022 ICPC Asia Regionals Online Contest

2022ICPC网络赛预选赛

2022-10-13 16:53:01 594

原创 状压dp求解tsp问题

郊区旅游AC代码:#include <bits/stdc++.h>using namespace std;const int inf = 0x3f3f3f3f;int n, m, r;int ar[20];int mp[205][205];int dp[1<<16][20];int x, y, z;void floyd(){ for(int k = 1; k <= n; ++k) { for(int i = 1; i

2022-05-18 20:28:10 174

原创 ShanDong Multi-University Training #2

题目链接F分析:简单dp,dp[i][j]表示到达第i个商贩时,第j种饮料最多获得多少,很容易发现可以滚成一维,状态转移方程也很简单,问题在于连乘可能会爆数据,所以通过取对数讲乘转化为加即可。AC代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;#define MAX 300050int n;double p;string s, t;map<string, double>

2022-05-18 19:23:38 129

原创 【团队赛组】2021-2022年度第三届全国大学生算法设计与编程挑战赛(赛氪)(秋季赛)【D分配颜色】【I排队队】

D分配颜色分析:首先,很容易看出来,对某一行或列操作奇数次是有效的,操作偶数次妹用,故我们可以枚举被操作了奇数次的行数i和被操作了偶数次的列数j,i,j,n,m,t之间有着一定的约束关系,也很容易看出来是i*(m-j) + j*(n-i) == t,由此我们可以枚举i和j,之后的问题就是对于每一对合法的i,j他们对答案的贡献是多少。我们先需要确定这i行是哪i行,所以自然需要c(n, i), 对着i行我们都认为是进行了1次操作,那么还剩p-i次操作,这时我们需要判断p-i的奇偶性,因为如果p-i是奇数

2021-10-26 18:53:52 1420 1

原创 E - Divisible by 3 Gym - 103102E

传送门分析:利用dpdp[i][wei][sum]表示以i为结尾的所有子数组中满足权值mod 3 为wei,前缀和mod 3为sum的个数然后状态转移就很简单了,因为那个取模嘛,sum和wei都是小于3的AC代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;int n;int ar[500050];ll dp[500050][5][5];ll ans;int wei, sum;

2021-10-18 20:26:06 369

原创 2021中国大学生程序设计竞赛(CCPC)- 网络选拔赛(重赛)【1005Monopoly】

题意:有一个圈,上面有n个点每个点都有一个值,走到这个点就可以获得这个点的值,这个人啊第一步一定落在第一个点上,然后他按照顺序走,走到n就再走到1,这样转圈圈,然后m次询问,每次询问一个x,让你输出最少走多少步就可以得到x这个值,永远都不可能则输出-1.分析:得到序列的前缀和si,总和sum,很容易想到x = sum * k + si,然后。。。官方题解就讲的很清楚(同余的地方很重要)然后,我这边借鉴了别人的题解,采用了map套一个pair<ll,int>的vector的方法实现的

2021-10-12 20:03:20 422

原创 2021ICPC网络赛第二场The 2021 ICPC Asia Regionals Online Contest (II) 【L Euler Function】

势能线段树

2021-09-26 21:48:26 2676 1

原创 莫队(模板 + 带简单修改的莫队)

莫队算法

2021-09-23 21:35:57 290

原创 2021ICPC网络赛第一场【A Busiest Computing Nodes】【D Edge of Taixuan】

A Busiest Computing Nodes分析:很明显的线段树维护区间最小值,之后二分查找。大的方向没问题,主要是很多小的地方妹处理不好.1.取模找,类似于形成一个环,这种问题的处理方法其实以前也用过,但是当时忘了,办法是把区间长度搞成两倍即可,明显可以看到代码中线段树开的是1e6 * 4 * 2的2.二分那部分当时也好混乱,但其实很简单3.二分结束后,l就是答案,这时需要判断l与k的关系,因为为了方便环我们搞成了2 * k,然后就是更新的时候l与l + k都需要更新。AC代码:#i

2021-09-22 20:00:15 245

原创 线段树【2021东北四省D(HDU7116)Lowbit】【2021杭电多校8/HDU7059 Counting Stars】

题目链接题意:两种操作,一是对某个区间上的数每个数和加上他的lowbit,二是查询区间和分析:首先,很容易想到这题估计得用树状数组,线段树之类的数据结构解决,但问题是修改有点麻烦,对一个区间上加的数不统一,难以快速维护。解决问题需要对lowbit比较熟悉,很容易发现,在加lowbit的情况下,所有数在加了一定次之后都会变成10000…000(2)这样的数,那之后在加lowbit实际是对它乘2了。所以,这道题,如果一个区间上的数都是100000(2)形式的就乘2,并且lazy标记即可,否则暴力维护。

2021-09-05 16:39:30 401

原创 AC自动机

AC自动机

2021-09-01 21:53:25 298 1

原创 2021杭电暑假多校第七场(MINIEYE杯)【Fall with Trees】【 Link with Limit】【Smzzl with Greedy Snake】

Fall with Trees (数学公式推导)题意:把一颗完全二叉树按照一定的规则放在一个格子中,让你求图形面积。分析:比赛中其实分析的差多了,但没做出来,主要原因一是当时头脑不够冷静,二是这个数学公式推导水平有点低(或者是懒)根据官方的题解:最后再化简,可得s表达式中求和符号及其后面那一坨等于4 * k - 10 + 3 * 2 ^ (2 - k)这样对于每个样例,确定h,d,k带入公式即可。AC代码:#include <bits/stdc++.h>using nam

2021-08-12 01:43:58 257

原创 【HDU6986】【2021杭电暑假多校】第四场1002 Kanade Loves Maze Designing

Kanade Loves Maze Designing分析:这个题的关键在于求出aij,根据n的范围可知我们需要在o(n^2)内求出即可,而求这个的方法从最根本上来说就是暴力即可,一每一个点为起点dfs遍历整颗树即可得到,但是有些小操作即对颜色的统计这方面不太会,所以没下手。另外,std中有好多值得学习的小细节。1.颜色的统计——直接影响aij的值首先如果是统计一个线性结构上某一区间的颜色种类那太简单了,但是这是统计一棵树上的一条路径上的颜色种类,不同点在于遍历方式,遍历树需要递归,根据递归的特

2021-08-02 01:40:00 258

原创 2021牛客暑假多校 【k题Stack】【F题Girlfriend】

题意:有一个排列a,经过如下操作(伪代码)变成了数列b,告诉你b的部分,让你还原排列a。Stk is an empty stackfor i = 1 to n : while ( Stk is not empty ) and ( Stk's top > a[i] ) : pop Stk push a[i] b[i]=Stk's size输入描述:第一行两个数n,k代表排列a的长度,k代表接下来又k行。接下来的k行,每行输入两个数pi和xi,表示b(p

2021-07-19 23:11:02 190

原创 第十八届同济大学程序设计竞赛暨高校网络友谊赛

A 自适应树游走协议(签到题)分析:看成线段树,遍历线段树,记录遍历结点个数即可。AC代码:#include <bits/stdc++.h>using namespace std;int n, k;int ar[10000];int id;struct node{ int l, r;}tree[20000];int ans;void push_up(int p){ tree[p].l = tree[p<<1].l; tree[

2021-05-26 19:45:11 182

原创 Northwestern Europe Regional Contest 2020 NWERC 2020 (Gym 103049)

A - Atomic Energy Gym - 103049A分析:玄学问题。如果k很大,很容易贪心的想到取ar[i]/i小的那个。但当k比较接近n时这样就不对了,然后。。。一开始做法是贪心取,取到k<2 * n是就不取了,对于2*n之内的,跑for循环预处理,然后wa了,然后又改成贪心到k<n,然后还wa,最后,改成贪心取到k < n * n就停下,然后就A了。?????????AC代码:#include <bits/stdc++.h>using namesp

2021-05-24 21:57:17 687

原创 蓝桥杯2016国赛(部分)

一步之遥题目描述本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。一步之遥从昏迷中醒来,小明发现自己被关在 X 星球的废矿车里。 矿车停在平直的废弃的轨道上。 他的面前是两个按钮,分别写着 “F” 和“B” 。小明突然记起来,这两个按钮可以控制矿车在轨道上前进和后退。 按 F,会前进 97 米。按 B 会后退127 米。 透过昏暗的灯光,小明看到自己前方 1 米远正好有个监控探头。 他必须设法使得矿车正好停在摄像头的下方,才有机会争取同伴的援助。 或许,通过多次操作 F和 B

2021-05-21 20:44:58 191

原创 树形dp 入门模板题

树形dp• 树型dp一般先算子树然后进行合并,在实现上与树的后序遍历(这个说法并不准确,因为其实很多都不是二叉树)类似——遍历子树,遍历完之后把子树的值合并给父亲。• 大部分的树形dp都是利用递归,先确定叶子结点的特征,然后推上去,即状态转移方程一般都是有该点的某些特征 = 其子节点的一些特征• 有的树形dp以哪个点为根节点无所谓,有的有所谓。引入• 给你一棵n个点的树(1号点为根节点),求以点i为根的子树的大小• f[i]以点i为根的子树的点的个数• f[i] = 1+Σf[k] (k是i的

2021-05-20 19:36:11 940 1

原创 区间dp 入门模板题

poj2955题意:求最长的”正则括号“的长度,正则括号定义如下:1.空串是正则括号2.如果s是正则括号,则(s)和[s]也是3.如果a和b都是正则括号,则ab也是4.第四条没看懂,(正则序列可以是原来序列的子序列(我自己胡乱说的))分析:区间dp,区间长度从1枚举到最长.(dp[i][j]表示i~j这个串中正则序列最长的长度)如果区间端点处两个字符匹配,那么dp[i][j] = dp[i+1][j-1] + 2,然后再更新这个区间的值,枚举这个区间的间断点k,dp[i][j]的值与左半区

2021-05-12 17:46:43 221

原创 【模板】矩阵快速幂

矩阵快速幂用途: 用于求很长的递推(例如,fibo第1e18项这种)难点在于推出需要做快速幂的矩阵代码的话,难点在于矩阵的乘法快速幂部分跟普通数字求快速幂相差不大,换个变量而已。矩阵乘法代码实现1.写函数,传参计算。struct Matrix{ ll ma[105][105];}a, b;Mat multi(Mat a, Mat b){ Mat res; memset(res.ma, 0, sizeof(res.ma)); for(int i = 1;

2021-05-07 19:22:34 339

原创 HDU 5514 Frogs (2015沈阳站) 容斥原理 or 欧拉函数

容斥原理要计算几个集合并集的大小,我们要先将所有单个(奇数个)集合的大小计算出来,然后减去所有两个(偶数个)集合相交的部分,再加回所有三个(奇数个)集合相交的部分,再减去所有四个(偶数个)集合相交的部分…依此类推,一直计算到所有集合相交的部分。欧拉函数euler(n) 小于n且与n互素的整数的个数性质:1.当a,b互质时 ∅ (a × b) = ∅ (a) × ∅ (b)(积性函数)2.小于n且与n互素的整数之和为 ∅ (n) * n/2不会证,但是观察发现假设∅ (n) = m那么第i个数

2021-05-04 16:42:19 626 2

原创 主席树 洛谷3834&POJ2104&HDU 6278

主席树

2021-05-04 11:14:39 167

原创 SDNU_2020Shenyang_Qualification 题解

C Gym - 102822D分析:答案具有单调性,可以二分,那接下来重点就是判断函数的写法了,我们假设答案是x,由于本题是需要让炸弹减小的-1,才爆炸,非常的别扭,我们先考虑炸弹到0就爆炸的情况,如果炸弹到0就爆炸,那么我们求出每个小于x的炸弹需要机会回合的加1操作,即(x-ar[i]),求出这个数之和,最后判断与x的大小关系即可。一点不知道好不好用的小技巧:1.对于这种边界比较别扭的,比赛过程中想不明白的,就大体写个正确的判断函数,然后输出mid-5~mid+5这几个数,挨着试,反正答案就在m

2021-05-02 11:33:54 232

空空如也

空空如也

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

TA关注的人

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