自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2018湖南省第十四届“嘉杰杯”大学生计算机程序设计竞赛总结

经过三个月的幸苦练习,在省赛这个大舞台上,我们小队收获了一枚铜牌。 从一开始刷南阳oj八十道水题,vj上的二十场校赛,再到多校的场场自闭,CF的熬夜作战。嗯,我确实付出了很多。然而我始终在思考,我这么多的付出到底学到了什么。貌似也接触了许多新算法,也刷过算法题。可是我真的学会了吗?好像连简单的并查集我都忘得差不多了。这次的省赛对于我们这种小萌新是有优势的,四道水题,我们侥...

2019-06-09 19:32:05 2012 5

原创 基础训练之“贪心”

BM96 主持人调度(二)

2022-11-02 19:51:03 462

原创 基础训练之“链表”

基础训练之“链表”

2022-10-11 14:59:10 250 1

原创 anaconda的一些基本命令语句

查看创建的所有环境conda info --env激活环境conda activat 配置镜像源conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/这里是清华镜像源或者在目录 C:\Users\<你的用户名> 下修改配置文件.condarcpip list 查看所有的库...

2020-05-10 16:38:48 649

原创 D. Strange Device:巧妙的交互题

题目链接题目大意:有一个长度为n的隐藏数组a,其中元素两两不同。你有一台机器可以最多询问n次,每次可以向这个机器输入k个数,这些数是下标(范围1到n)。而机器会返回这些数中第m大的数的值,以及他的下标。已知k,求m。题解:其实解法在样例就有体现(后悔当时没有研究样例)。我们只需对前k+1个数查询k+1次,这样只会得到两个元素的值,一个是第m大的数,一个是第m+1大的数。第m大的数会出现(k...

2019-12-30 21:48:37 454

转载 os——页面淘汰算法

地址映射过程中,若在页面中发现所要访问的页面不在内存中,则产生缺页中断。当发生缺页中断时,如果操作系统内存中没有空闲页面,则操作系统必须在内存选择一个页面将其移出内存,以便为即将调入的页面让出空间。而用来选择淘汰哪一页的规则叫做页面置换算法。1.最佳置换算法(OPT)(理想置换算法):从主存中移出永远不再需要的页面;如无这样的页面存在,则选择最长时间不需要访问的页面。于所选择的被淘汰页面将...

2019-12-23 11:01:41 412

转载 什么是原语?

“原语 操作系统或计算机网络用语范畴。是由若干条指令组成的,用于完成一定功能的一个过程。primitive or atomic action 是由若干个机器指令构成的完成某种特定功能的一段程序,具有不可分割性·即原语的执行必须是连续的,在执行过程中不允许被中断。”——来自百度百科第一次看到“原语”这种提法还是在学习操作系统的时候,而且要么不碰到,一碰就是一双,“PV操作”这对原语就是我最先接触...

2019-12-15 20:45:11 3134

转载 进程与程序的简单概述

什么是进程?所谓进程就是将一个二进制文件加载到内存形成的一个个体,这就是一个进程。在我们的linux系统中,系统只识别二进制文件,所以一个系统要想正常的运行时,必须启动一些二进制文件,从而形成进程,在以这些进程的方式去执行相应的任务。我们常常听到所谓的程序,那么程序和进程是什么关系呢?刚刚说过进程是由二进制文件加载到内存中形成的。而这些二进制文件就是程序。可以这么来理解:...

2019-12-15 15:53:55 296

原创 C. Ivan the Fool and the Probability Theory (傻逼打表题)

题目链接这场CF刚好和银川冲突了,错失一波上分机会。题意:给n * m矩形的格子涂色,两种颜色,要求每个格子最多只有一个相邻格子颜色和他相同。题解:傻逼打表题,打表就完事了。附上我写的打表程序。#include<bits/stdc++.h>using namespace std;int n, m, ans;int a[100][100];int d[4][2]...

2019-10-22 09:38:26 173

原创 Codeforces Global Round 5 C2. Balanced Removals (Harder) (并查集)

题目链接题意:三维空间中有偶数个点,每次你可以选择两个点将其删除,但是需要保证以两点为端点的长方体不能包含未删除的点。问怎样可以将所有点删除。题解:对x,y,z排序,先x, y相同的点删掉,再x相同的删掉,再把剩下的点删掉。这样保证每次删除的点对中间不会存在别的点。对于c2,因为n比较大,所以我用了并查集维护每个位置后第一个为空的位置。c1:#include<bits...

2019-10-17 14:52:01 259

原创 Codeforces Round #592 (Div. 2)

题目链接这场感觉难度 C > E > D > B > A,当时放弃了C写D,D有个数组开小了,在本地一直过不了样例,找了一个多小时bug,最后两题自闭。A. Pens and Pencils向上取整就ok了。#include<bits/stdc++.h>using namespace std;const int N = 2e5 + 10;...

2019-10-14 09:31:11 219

原创 2018-2019 ACM-ICPC, Asia Nanjing Regional Contest G.Pyramid(找规律 + k阶差分)

题目链接题意:请看到题目那张图。一个n阶三角形,从中任选三个点,能构成三角形的方案数。题解:先说说我找到的一个递推的规律:首先对于一个n阶三角形,那么它内部存在三个(n-1)阶三角形,这三个三角形就会有重复的三个(n - 2)阶的三角形,根据容斥定理此时我们还要加上一个内部(n-3)阶三角形。最后还要加上i:n阶这个大三角形,n阶内部最大的倒三角形,以及题面给的那种能斜着放的三角形,其...

2019-10-05 20:58:07 550 1

转载 数学板块学习之差分应用及正整数的k次幂求和

原地址18南京icpc一个规律题推出了k阶差分,一开始不知道怎么求前n项和,最后队友猜了一个结论过了。

2019-10-05 19:48:03 457

原创 2019牛客暑期多校训练营(第七场)E.Find the median(权值线段树 + 区间离散化)

题目链接题意:这题就是先让你套个公式把n个区间算出来,然后对于单个区间在序列里加上这个区间内所有数,然后再求此时序列的中位数。题解:中位数实际上就是求整个序列第n/2大,考虑权值线段树,但是因为区间范围太大,所以要对区间进行离散化。离散化之前,首先要将所有区间的左端点减1。为什么呢?因为离散化后线段树上的每个点存的实际上是一段区间,那么比如区间【3,8】,离散化之前我们要把它变成(2,...

2019-10-04 10:03:32 198

原创 Codeforces Round #589 (Div. 2) E. Another Filling the Grid (dp + 容斥)

题目链接题意:给你一个n * n 矩形,每个格子可以填一个小于等于k的数,要求每一行每一列都至少有一个1,求方案数。题解:这题难点在于怎么设状态转移方程,以及怎么转移,总之就是很难qwq设dp[i][j] 表示在第i行,有j列已经有1的方案数 那么就可以由第 i - 1列转移,也就是dp[i][j] 可以由 dp[i - 1][p] (1<=p<=j) 转移而来:分两种情...

2019-10-03 19:30:10 230

原创 Codeforces Round #590 (Div. 3) F. Yet Another Substring Reverse(状压dp)

题目链接这题真没想到状压dp可以写,看了别人代码才看会的。题意:给你一个只包含前20个英文字母的串。你可以执行一次操作,将这个串的任意子串翻转一次。让你求一个最长的没有重复字母的字串。题解:首先看到只有二十个英文字母,无脑上状压dp。可以将这个串的任意子串翻转一次,实际上就是可以让两个去重的子字符串合并在一起。那么这个题就变成了枚举子集,表示我们必须选取这一段,然后为了使答案最优,所以...

2019-10-03 10:04:52 217

原创 Codeforces Round #590 (Div. 3) - E. Special Permutations (补题)

题目链接这题赛后看了一下,挺水的,十分钟出思路。然后自己傻逼了,竟然套了一个线段树去写,强行提高时间复杂度,其实差分一下就好了。题意:定义这样一个排列 pi(n),表示将1 ~ n 这个排列的 第 i 个元素放到序列最前面,形成一个新的排列。 定义pos(pi(n),3) 表示 3 在这个排列的下标是多少 给你一个数组x 定义方程 然后求f(p1(n)),f(p2(n)),f(...

2019-10-03 09:48:19 398

原创 2018-2019 ACM-ICPC, Asia Jiaozuo Regional Contest F - Honeycomb(简单最短路 + 恶心建图)

题目链接题意:在一个蜂巢里,一只小蜜蜂要从 S 点飞到 T 点。题解:题目已经保证蜂巢的结构一定是样例给定的框架,那么我们可以给按照规律从左到右,从上到下给每个六边形编号。再用bfs连边,最后跑一遍最短路即可,思路简单,只是连边过程有点考验码力。 +---+ +---+ / \ / \+ +---+ +---+ \...

2019-09-26 20:48:57 330 1

原创 BM板子

题目链接#include<bits/stdc++.h>using namespace std;#define rep(i,a,n) for (int i=a;i<n;i++)//#define per(i,a,n) for (int i=n-1;i>=a;i--)#define pb push_back//#define mp make_pair//#de...

2019-09-20 22:23:08 275

原创 2018 蓝桥杯省赛 A 组模拟赛(一) F. 结果填空:铺瓷砖(状压dp + dfs)

题目链接题解:设dp[i][j] 表示 第 i 行 为 j 状态的方案数,这个j状态是受上一行摆放情况的影响而来的。#include<bits/stdc++.h>using namespace std;typedef long long ll;const int M = (1 << 11), N = (1 << 10);ll dp[12][M]...

2019-09-20 21:10:32 367

原创 A1951 AC Challenge(状压dp)

题目链接题意:有n个题目,每分钟可以做一个题目,做一些特点题目之前要把规定的题目做了才能做,每个题目能做的贡献是 T * a + bT是做这个题目的时间。题解:这题转移简单,就是预处理有些麻烦。#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N = (1 <...

2019-09-20 19:59:28 152

原创 vijos 1456 最小总代价(状压dp)

题目链接题解:这题就是普通的状压dp 设 二维dp[i][j] 表示为 在i状态下 物品在第j个人手上的最小代价花费。初始化要注意一下。#include<bits/stdc++.h>using namespace std;const int N = 20, M = (1 << 17);int dp[M][N], mp[N][N];int main()...

2019-09-20 19:48:30 218

原创 P2704 [NOI2001]炮兵阵地(状压dp)

题目链接题解:这题其实会状压dp就很简单了,只是限制条件有点多。先预处理出一行的每一个合法的状态,这个基本操作,左移一位,两位,右移一位,两位,判断一下就好了。 设dp[i][j][k],意思是在第i行,第i行的状态为j,第i- 1行状态为k能放的最多炮阵。 然后转移要三层循环,比如dp[i][j][k] 能被 dp[i - 1][k][z] 转移的条件是,i不能打到j,以及i不能...

2019-09-19 18:53:58 174

原创 P2622 关灯问题II(状压dp)

题目链接题解:这题跑一下bfs就好了,用一个数x表示此时n盏灯的状态,二进制为 1 表示灯开。所以最后只要判断x为0,所有灯就关了。#include<bits/stdc++.h>using namespace std;const int M = (1 << 11);struct node{ int pre, step; };int mp[110][11...

2019-09-17 19:02:25 166

原创 G1. Playlist for Polycarp (easy version)(状压dp)

题目链接类似的题状压dp这两道题都是一样的套路,通过状压dp将 n!优化到 2^n,相信你写了上面那题,这题就很容易切掉了#include<bits/stdc++.h>using namespace std;typedef long long ll;const int mix = (1<<15), N = 300, mod = 1e9 + 7;ll...

2019-09-17 08:04:30 311

原创 Codeforces Round #585 (Div. 2) E. Marbles (状压dp)

题目链接题意:给你一个长度为n的序列,其中最多有20种颜色(用数字表示)。每次可以交换相邻两个元素,求最少的交换次数,使得相同数字的元素都合并在一起。题解:赛后学了一波贪心AC的题解,没想到加强了数据wa了。于是转学状压dp。首先进行预处理。设cnt[ i ][ j ],表示第 i 种颜色全部放到第 j 种颜色前面所需的操作次数。 从前开始枚举,设当前位置颜色为x ,那么cnt[ x...

2019-09-16 20:52:26 310

原创 E1. Rotate Columns (easy version)(暴力)

题目链接题意:给你一个n行,m列的矩阵。你可以对任意一列进行上下循环移位。定义 ri 为第i行的最大值,让你使得r1 + .. rn最大题解:首先求出每一列的最大值,然后从大到小排序。可以肯定的是,对答案有贡献的一定是前n列(这里可以自己举几个例子,就不细说了)。n最大为4,暴力枚举每种情况有4^4种,这题就写完了。#include<bits/stdc++.h>usin...

2019-09-16 15:21:40 787

原创 Codeforces Round #585 (Div. 2)(A,B,C,D,E)

比赛链接A. Yellow Cards题意:你有n张黄牌,有两只球队分别有a1,a2个人,两个球队的人分别吃k1,k2张黄牌就会被罚下场。问最多,最少可以使多少人被罚下场。题解:贪心。让最多的人罚下场,先贪心选能吃黄牌少的人。让最少的人罚下场,就给每个人都分配k - 1张黄牌,多出的黄牌就是要罚出的人。#include<bits/stdc++.h>using nam...

2019-09-16 09:44:33 286

原创 The Preliminary Contest for ICPC Asia Xuzhou 2019 I. query(线段树写法)

I. query题意:给你一个长度为n的排列,询问m次区间,问区间内有多少对i,j 使得 gcd(pi,pj)= min(pi,pj)。题解:gcd(pi,pj)= min(pi,pj)实际上就是pi,pj成倍数关系。首先可以预处理出所有的成倍数关系的pi,pj对。大概只有(1 + 1/2 + 1/3 + 1/4 + 1/5 + .....)* 1e5 =1166750 这么多对...

2019-09-14 11:04:11 193

原创 The Preliminary Contest for ICPC Asia Xuzhou 2019 M. Longest subsequence(序列自动机)

序列自动机是个啥呢,听起来很高大上,和什么AC自动机,回文自动机一样。但其实很简单,通俗的讲,序列自动机就是记录每一个位置后第j + ‘A’ 字符出现的第一个位置。核心代码:时间复杂度O(26*n)for(int i = 0; i < 26; ++i) nxt[n][i] = n + 1; for(int i = n; i >= 1; --i){ for(int j...

2019-09-10 16:11:39 153

原创 The Preliminary Contest for ICPC Asia Xuzhou 2019 E. XKC's basketball team (线段树写法)

我只想问出题人,这题是不是在黑我坤坤???题目链接题意:有n个人,每个人都有一个w值。问每个人右边最远的且大于等于wi+m的位置。题解:我用了三种写法。这里都说一下。1.单调序列,从后往前维护一个单调递增的序列,然后对于第i个人在这个序列中二分一下就行了。原理是,我比你大且比你位置靠后,选我肯定最优。代码就不贴了。2权值线段树写法。先离散化,建权值线段树,线段树维护区间下标...

2019-09-10 15:20:22 117

原创 The Preliminary Contest for ICPC Asia Xuzhou 2019 D. Carneginon(哈希写法)

题目链接题意:给你一个s串,n个t串。t串长度小于s串时,判断t是否是s子串。t串长于s串时,判断s串是不是t子串。题解:简单哈希,如果t串长于s串,则互换一下就好了。(kmp写法过会再更新)#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N = 1e5+100;...

2019-09-10 15:03:45 147

原创 The Preliminary Contest for ICPC Asia Xuzhou 2019 B. so easy(并查集 or 线段树)

题目链接题意:有n个点,有两种操作。1:标记x 点 无效; 2:查询x点后第一个有效点的下标(包括本身)。题解:比赛时想到了并查集写法,无奈并查集写搓了。。。。1:map + 并查集 ,每个位置维护下一个有效位置。#include<bits/stdc++.h>using namespace std;unordered_map<int, int>pre...

2019-09-10 14:57:38 262

原创 扩展中国剩余定理板子

#include <bits/stdc++.h> using namespace std;typedef long long LL;const int maxn = 100;LL b[maxn],a[maxn],f[maxn];LL Ex_gcd(LL a,LL b,LL &x,LL &y){ if(b==0){x=1;y=0;return a;...

2019-09-08 21:22:41 103

原创 【题解】牛客练习赛51

比赛链接A abc前缀a的数量,后缀c的数量,遇到b就计算一次答案。#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N = 1e5+100;char s[N];int cnt[N];int main(){ ll ans= 0 ; scanf("...

2019-09-07 21:00:44 227

原创 主席树

今天下午学会了主席树,写写自己的理解。主席树,也叫可持久化权值线段树。 什么叫权值线段树?就是线段树的叶子结点保存的是当前值的个数。 什么叫可持久化?可持久化就是可以保留以前建树的历史版本,比如你要对n个元素建树,那么在可持久化线段树中就会有n颗树,其根节点为root[i]。root[i]代表第i颗线段树,这颗线段树由 1 ~ i 的所有元素组成。 在线段树中,每次新插入一个值,最多会使...

2019-09-06 19:35:47 196

原创 2019牛客暑期多校训练营(第九场)E . All men are brothers(并查集+线段树维护dp)

题目链接题意:有n个人互相不认识,m次操作给出x,y使x和y认识,间接认识也算认识。每次操作后问你有多少种方案使得从其中选取4个人互不认识。题解:互相认识的过程其实就是形成联通块的过程,这里我们可以使用并查集进行模拟。 然后我们得到一个个联通块,接下来就是排列组合了,每个联通块可以任选出一个人出来,与另外的联通块一起贡献答案。 设dp[i][j]表示前i个联通块选取j个人互不认识的...

2019-09-05 21:26:55 116

原创 2019牛客暑期多校训练营(第九场)

比赛链接D Knapsack Cryptosystem题意:给你n个数,让你从中选出任意个数恰好组成s题解:首先考虑搜索,对于每一个物品都有两个状态,选或者不选。这样的时间复杂度是2^n,n最大有36,显然会超时。那有什么办法降低时间复杂度吗?这时就得请出神奇的折半搜索。将n个物品分为两半,先对前n/2的物品进行dfs,将所有可能组合以及值用map记录下来,再对后n/2的物品进行dfs...

2019-09-04 07:10:36 115

原创 2019牛客多校赛第十场F.Popping Balloons(线段树)

题目链接题意:在一个n*n的二维空间上有任意个气球,你可以横着发射三发子弹,竖着发射三发子弹,且要求每连续两发子弹的间距要恰好等于r。每发子弹可以打掉一排或者一列的气球,问你最多可以打掉多少个气球。题解:这题思路其实不难想。将每连续三行的气球合并放在线段树里,维护气球个数最大值。然后暴力枚举每三列气球,每次先将这三列的气球在线段树去掉,更新后再求得行最大值,就是答案,然后再把删除的点的更新...

2019-09-03 18:53:01 190

原创 抓捕盗窃犯(并查集)

题目链接题意:中文题面题解:罪犯之间可能会形成一个联通块,只要在每个联通块上设一个关卡就能抓获联通块上所有罪犯。并查集求出所有联通块,然后对罪犯个数排个序就行了。#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N = 1e5+10;int a[N],pre[N...

2019-09-03 17:52:25 131

空空如也

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

TA关注的人

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