自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2021.11.18 部分题解

翻转游戏solution:有一种理解,就是当前需要消除的1数目为偶数,那么就一定没有方案。那么我们来考虑奇数情况,将mmm写成二进制形式,然后我们把每个1和前面连续的0看成一块,第一个1就除外若一个1前面没有0那么就直接添加就可以了如图,我们需要的只是111这一段的长度,要得到这个长度,我们就用O3−O2−O1−1O3-O2-O1-1O3−O2−O1−1,得到的就是111串的长度#include<bits/stdc++.h>#define ll long longusing

2021-11-19 07:37:54 928

原创 2021.11.17模拟赛部分题解

第K排列solution:这个题目乍一看暴搜,但是又一看数据太大了不能暴搜,但是最后仔细的看,发现其实当我们严谨的估价,其实就是一个暴搜首先我们可以从后面去计算最大的后缀值,然后我们就可以从前往后dfs了,因为只用求字典序第kkk大的答案,且kkk小于1000,所以我们去暴力递归,然后暴力递归的时间复杂度其实只有O(n∗4)O(n*4)O(n∗4),因为经过剪枝之后,每个位置只会错4次。#include<bits/stdc++.h>#define ll long longusin

2021-11-18 07:46:07 96

原创 2021.11.15模拟赛部分题解

字典树solution:正面硬搞发现是不太可能的,所以我们利用trie树的性质,节点数=不同的前缀数量。所以我们想到用容斥来处理多个串之间的前缀所做的贡献。处理?时,对于几个串同一位都是?时,那么会对后面的位提供2的贡献,并且未讨论到的?每一个也会对当前做出2的贡献。#pragma GCC optimize(3)#pragma GCC optimize(2)#include<bits/stdc++.h>#define ll long longusing namespace s

2021-11-17 07:40:15 468

原创 2021-11-13 半期考试

果果系统2solution:这个题目极其阴间,T1打磨你,全场没有a首先对于有对角线的方块我们可以直接确定位置,然后可以直接将在他2∗22*22∗2的矩阵内建立一个拓扑图,那么还剩一些1∗21*21∗2的长条,怎么办呢,首先每当我们删除一个2∗22*22∗2之后,我们将格子都赋值为−1-1−1,然把周围的12个格子全部遍历,再去判断是否能构出一个新的2∗22*22∗2#include<bits/stdc++.h>#define ll long longusing namespac

2021-11-16 07:37:22 471

原创 2021-11-12 部分题解

直径solution:首先我们知道对于树的直径的性质,那么对于两颗子树,如果将其相连变成一棵树,那么直径是两棵树直径端点的两两连边的最大值。当我们将一颗子树从树中删去以后,那么我们就可以合并剩下的连通块,就可以利用dfsdfsdfs序+线段树来处理了#pragma GCC optimize(3)#pragma GCC optimize(2)#include<bits/stdc++.h>#define ll long long#define V vector<int&gt

2021-11-15 21:40:43 388

原创 2021-11-6 部分题解

花环solution:(最大m子段和)我们首先将符号相同的花合并成一段,由于保证了正数的数量不小于mmm,所以如果当正数段小于等于mmm时,我们直接选正数即可然后我们有一个后悔堆的做法,我们先将正数段全部选,然后我们将所有的段放入堆中,每次从堆顶取出取出元素后,让当前答案减掉其绝对值,为了每次取出都要使得段数-1,所以在取出元素以后,我们将其与左右两个合并,并将值的代数和相加。翻译:当我们取出一个正数段时,说明我们当前舍弃掉这一段,当我们选择一段负数段时,说明我们选择了这一段,将两边的正数连接在一

2021-11-10 16:39:01 63

原创 01分数规划(二分答案)

01分数规划基础理解简化:即对于∑a[i]/∑b[i]\sum{a[i]}/\sum{b[i]}∑a[i]/∑b[i],求最值。圈地游戏solution:首先我们需要将面积映射到边上,然后找到一条回路。巧妙:我们会发现对于竖直的边或者是水平的边,一定是成对出现,两两相对,不同的边对之间夹着的面积不会重复,所以我们可以人为的修改边权,例如我们将面积映射到竖直方向的边上,对于逆时针旋转的方向,将向下的边权加上前缀面积的负值,向上的边加上前缀面积的正值。每次我们二分一个midmidmid,去验

2021-11-10 15:51:58 2649

原创 模拟赛2021.11.9赛题总结

2021.11.9总结早上的的模拟赛考得还行,有一些小失误。但是晚上就直接保龄了,太难受了,怎么会在晚上考模拟啊,心态崩了。昨天晚上基本没有考试心得,基本就是在做T1的时候没想清楚,神志不清,然后觉得T2不太可做,结果就是两个小时T1坐牢。后面的题基本没有怎么思考,昨天就应该直接倒序开题。还是对于时间的把握不够好,其实就应该直接放弃前面的题,先去坐后面的。T1solution:f[i]f[i]f[i]表示...

2021-11-10 15:33:17 250

原创 模拟赛2021.11.4总结

2021.11.4总结这一次模拟赛还是考的不好。考试的时候,一有点想法就逮到半截就开跑了,然后没想周全,然后编码之后发现错了浪费了很多时间。T1:做这个题的时候一开始是想错了策略,想用分块去维护二维数点,但是发现没有办法维护竖直方向的前缀和,所以寄了,然后就急急忙忙的写了一发暴力,然后才发现只有100种长度,可以维护不同长度的前缀和,然后继续写了一个分块,但是由于以为这个题目的时限比较死,所以块长取根号萎了。本身期望AC的,但是T了,下来之后改了块长就过了。T2:推得时候,没有想清楚,结果代码写了

2021-11-04 21:24:37 88

原创 csp2021S赛题总结

前言:本蒟蒻第一次上csp,虽然之前一周的集训经历过很多模拟赛,总结归纳了一些经验,但是拿到正式赛场上还是有很多出现了很多的问题。考完之后一度怀疑人生。。。csp2021S保龄场以下就是本次考试的各方面出现的问题时间分配:实际上我很显然是可以先把所有题目的暴力先打完,然后再来想能不能写出正解,但是实际操作就是反向实施,然后,,,正解根本写不出来,浪费了很多时间,并且心态不稳,写暴力都很困难。(其实我应该认识到,打暴力就是为了写出正解做准备,为拿分提供一个保障,也不要太过于死磕,把所有的暴力先写完.

2021-10-24 18:32:53 214

原创 初学基环树

基环树基环树定义:一个有n个点,n条边的连通图;ad:任意的子图的边不会超过点数基环内向树(森林):所有的点都有且仅有一条出边基环外向树(森林):所有的点都有且仅有一条入边理解方式:1.将基环树看作一棵树上,多了一条边,2.(解题通法)我们取出环边,然后环上每个节点都会引出一个以此为根的一个子树判环bool dfs(int u,int pre){ if(vis[u]){vis[u] = 2;return 1;} for(int i=lst[u];i;i=nex[i]

2021-10-10 23:54:00 223

原创 现学笛卡尔树

笛卡尔树简单应用:将RMQ问题转化为树上的LCA问题笛卡尔树模板

2021-10-10 23:50:14 80

原创 2021年10月8日模拟赛(保龄奇遇记)

本场考试考的很撇,值得反思,暴露出很多问题,望及时的拨乱反正,改掉操之过急,心态不稳定的缺点2021年10月8日模拟赛(保龄奇遇记)太菜了T1 话中有话有些词是多义词。这就导致同一句话可能有多种解读,即话中有话。何老板给你一个字符串AAA,同时给你一个单词BBB。单词有两种不同的含义。何老板想知道,字符串AAA有多少种不同的解读?solution:dp+kmp(ac自动机)dp+kmp(ac自动机)dp+kmp(ac自动机)dp[i]=dp[i−1]+(fail[i]==lenb)?d.

2021-10-10 23:40:47 93

原创 马拉车+主席树

vjudge 3 H

2021-10-07 15:46:20 68

原创 最小生成树的性质

1.对于不同的最小生成树方案,边权的构成是相通的2.不同边权的图像互不影响3.对于小于等于L的边权构成的图,各个联通块的构成点相同

2021-10-07 15:42:20 153

原创 Splay

splay 模板#pragma GCC optimize(3)#pragma GCC optimize(2)#include<bits/stdc++.h>#define ll long longusing namespace std;const int N = 1e5+10;int n,m,a[N],ans;int root,son[N][2],fa[N],sz[N],dt[N],tot;int son_type(int x){return x == son[fa[x]][1]

2021-10-05 19:58:18 84

原创 树链剖分+提升题

十七波 Q Falsita、P[Ynoi2017]由乃的OJ

2021-09-14 13:25:46 112

原创 树的直径+树的重心

树的直径求法 :两遍dfs分别求出最远的点,所得的两个点为直径的两个端点;void dfs(int x,int fa)//find d point; { int i = last[x]; while(i) { int y=en[i]; if(y==fa) { i=nex[i]; continue; } dfs(y,x); if(len[i]+gf[y]>gf[x]) { gf[x]=len[i]+gf[y]; df[x]=df[y];

2021-08-28 16:17:03 60

原创 杂题DP+数论

vjudge contest 4、5;心得:dp和数论是最基础的技能,但是最近的两次复习作业表,做起来感觉力不从心,很多dp的技巧,数论的知识都开始遗忘了,加上最近的生活作息不正常,又有新高一的dailao的加入,感觉很有压力,做题完全提不起劲DP区间DP环形DP背包DP+biset压位优化:V4 J;题目简化:他会准备N带有数字的卡片。上的数字一世-th 卡是 一种一世. 在课堂上,他每回合将删除不超过3 卡片,让学生选择任意十张卡片,其上的数字之和 87.口糊 因为 dp[i]dp[i

2021-08-28 16:15:31 114

原创 判断二分图

二分图性质:二分图中不含有长度为奇数的环判断方法:扩展域并查集&带权并查集扩展域并查集将一个点拆分为两个点,i′i'i′代表不跟iii在同一边代码int fx=get(x[i].a);int fy=get(x[i].b); if(fx==fy) { printf("%d",x[i].cnt); return 0; } fa[fx]=get(fa[x[i].b+n]); fa[fy]=get(fa[x[i].a+n]);带权并查集利用二分图中不含奇环的性质,我们记

2021-08-23 15:31:33 99

原创 多路归并+杂题

virtual judge P题+异或之

2021-07-25 19:21:52 95

原创 trie树+AC自动机浅谈 +KMP

#include<bits/stdc++.h>using namespace std;const int maxn = 1e6+5;int n;char a[60],s[maxn];int go[maxn][26],icnt,val[maxn],fail[maxn];int vis[maxn],ans;void insert(char *a){ int u = 0; for(int i=0;a[i];i++) { int ch = a[i]-'a'; if(!go[

2021-07-25 09:09:57 128

原创 概率DP:HDU 4089 Activation

vjudge传送门题意简化一个人位于一个队列中,对于当前的队首,会有四种事件发生,概率分别为p1:队列不会发生变化p2:将队首转移到队尾p3:将队首删去p4:停止一切操作当前有n个人,这个人排在第m位,求最后停止的时候,他位于前k位的概率是多少解题思路:我们发现这个可以用概率DP来处理,dp[i]j[j]表示当前有i个人,他排在第j位到达最终形态的概率,所以最后答案输出dp[n][m];显然有以下几种状态j=1j=1j=1时,dp[i][j]=dp[i][j]∗p1+dp[i][i

2021-07-21 20:50:57 74

原创 杂题(virtual judge 热身训练)

H - Problem B. Harvest of ApplesdescriptionThere are n apples on a tree, numbered from 1 to n.Count the number of ways to pick at most m apples.InputThe first line of the input contains an integer T (1≤T≤105) denoting the number of test cases.Each t.

2021-07-21 10:13:56 122

原创 NKS信息学竞赛高一暑期周测Ⅰ

NKS信息学竞赛高一暑期周测Ⅰ总结与反思T1: 跳马(jump)文件名 jump.cpp/.in/.out ,时间限制1秒,空间限制256MB,编译开启 -O2 优化。问题描述果果上课觉得无聊,于是掏出一枚中国象棋中的"马"棋子开始玩了起来。 中国象棋中的"马"走 “日” 字,即横坐标跳1、纵坐标跳2,或者横坐标跳2,纵坐标跳1。 果果把"马"放在一个二维网格棋盘的左下角坐标为(0, 0),并且选定了一个终点(n, m),果果想知道,有 多少种不同的方案可以让"马"走到终点? 果果不喜欢走回头

2021-07-17 22:05:56 142

原创 图论总结(一)

# 图论总结(一)二分图最大匹配匈牙利算法最少点覆盖 = 最大匹配最少线段覆盖 = 点数 - 最大匹配最大独立集 = 点数 - 最大匹配有向无环图无重叠最少线段覆盖 = 点数 - 最大匹配有向无环图可重叠最少线段覆盖 弗洛伊德算法将上者进行转换,将所有可以互相到达的点都连上边for(int k=1;k<=m;k++) for(int i=1;i<=m;i++) for(int j=1;j<=m;j++) if(Map[i][k]&&amp

2021-04-23 18:52:08 51

原创 2021-01-23

期末测试20210123(425/600)基因中有A[ 解题思路] :前缀和记录AC的数量;!!!*sum[R]-sum[L],因为AC是两个字符,但是记录在C位置上,所以当包含的区间只留了其中一个,则应该减去前面的半个AC;[反思 ] :使用了较为复杂的树状数组,(签到题目用前缀和不香吗)奥特曼打小怪兽[ 解题思路] :二分答案[ 反思] :考试时直接暴力弄了一个优先队列,却没有考虑到数据范围,会超时;老板砍树[ 解题思路] :类似于奶牛大学,用循环分别跑一遍两边要

2021-01-23 23:51:00 116 1

原创 记录周赛0116

记录周赛0116——nkoj(1/4)飞行管制: ——堆,优先队列[ 反思] :做题时应该及时判断做题方法,然后理清楚思路。疫情防控:——并查集(判断是否有环)[ 反思] :对于并查集的掌握不牢固,使用起来略显吃力。玩玩亦或:——树状数组(亦或前缀和)[反思] :应该利用草稿本,进行找规律,推解题过程,而不是一味靠想。地雷游戏:——状态压缩,线性函数的k值判断。[ 反思] :对于状态压缩的运用很生硬,不够灵活,且代码能力弱,有思路,但无法形成有效代码。最后

2021-01-19 01:07:03 107 2

空空如也

空空如也

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

TA关注的人

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