自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

JCC

一个蒟蒻的做题记录

  • 博客(46)
  • 资源 (1)
  • 收藏
  • 关注

原创 2018-8.03 组队训练补题

A. Zero Array首先数组中有几个不同的元素 我们就要修改几次,然后我们可以用一个变量 ans 记录这个值接下来进行修改在数组中如果没有与修改后的值相同 那么 ans ++ 然后更新数组和map 但是这样 修改前的也占了一次 此时就要进行判断 如果修改前的数字在数组中没有相同的 那么就直接ans -- 如果有 就不需要变/**Today you do things p...

2019-08-03 23:12:31 179

原创 位运算基础

1.’&’符号,x&y,会将两个十进制数在二进制下进行与运算,然后返回其十进制下的值。例如3(11)&2(10)=2(10)。2.’|’符号,x|y,会将两个十进制数在二进制下进行或运算,然后返回其十进制下的值。例如3(11)|2(10)=3(11)。3.’^’符号,x^y,会将两个十进制数在二进制下进行异或运算,然后返回其十进制下的值。例如3(11)^2(10)=...

2019-07-29 23:18:16 344

原创 字典树

Trie又被称为字典树、前缀树。所谓字典树,顾名思义,就是像字典一样的树,可以通过这棵树快速查找单词。例如给出一串单词inn, int, at, age, adv, ant基本性质:1)根节点不包含字符,除根节点外每一个节点都只包含一个字符。  2)字典树用边表示字母3)从根节点到某一节点,路径上经过的字符连接起来,为该节点对应的字符串。 4)每个节点的所有子...

2019-07-29 22:45:32 186

原创 贪心 暴力 思维题 (持续更新Ing)

前言:这里面的题目都是对大佬比较简单的题目qwq大佬们轻喷~牛牛的朋友这个贪心思路我真的i了 第一次遇到这样的贪心 觉得思路真的很巧妙qwq 所以分享一波首先对所有的牛排序一波 然后枚举分界点 分界点左边向右移 分界点右边向左移 然后排序 更新其中的最小值#include<bits/stdc++.h>using namespace std;const i...

2019-07-24 22:28:01 327

原创 逆元

为什么要求逆元:因为计算(a/b)%mod时 (a/b)%mod != (a%mod)/(b%mod) 所以需要把除法变成乘法设c是b的逆元 则:b*c≡1(mod m)则(a/b)%m = (a/b)*1%m = (a/b)*b*c%m = a*c(mod m)即a/b的模等于a*b的逆元的模求逆元的方法:1.费马小定理费马小定理:假如p是质数,且gcd(a,p)...

2019-07-24 13:38:06 276 3

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

A.单调队列维护一个递增序列。那么可以知道这个递增序列的第一个数就是区间最小值,那如果在某个区间内有更小的值出现,原最小值和队列中元素将被清空,所以可以通过元素个数的变化来判断最小值的下标的变化代码:#include<bits/stdc++.h>using namespace std;const int maxn = 1e5+5;int a[maxn],b[maxn...

2019-07-19 21:13:36 129

原创 牛客小白月赛16

A.小石的签到题很容易得到n==1时,因为小石先手,所以小石一定输而n!=1时,假设n=5 小石先取1 小阳取2 4 小石去3 小阳输,无论怎样小石都有赢的机会#include<bits/stdc++.h>using namespace std;int main(){ int n; cin>>n; if(n==1) printf(...

2019-07-13 09:29:39 117

原创 18.Black & White

链接:https://ac.nowcoder.com/acm/contest/893/F来源:牛客网题目描述你有一个长度为 n 的 01 串S,你可以执行最多 m 次操作。对于每次操作,你可以选择一个位置 i 满足 1≤i≤n,翻转这一位的值,0变成1,1变成0。定义一个 01 串的价值为其中最长连续0的个数和最长连续1的个数的较大值,求S在经过最多m次操作后的最大价值。...

2019-05-05 18:20:57 321

原创 二叉树的性质

1.二叉树的定义二叉树是n(n>=0)个节点的有限集合,该集合或者为空集(空二叉树),或者由一个根节点和两棵互不相交的、分别称为根节点的左子树和右子树。二叉树的特点:1.每个节点最多有两棵子树(度小于等于2)2.二叉树是有序的,次序不能颠倒,即使树中某个节点只有一棵子树,也要区分是左子树还是右子树2.树的基本术语若一个节点有子树,那么该节点称为子树根的“双亲”,子树的...

2019-05-04 21:50:41 204

原创 欧几里得和扩展欧几里得

欧几里得算法(辗转相除法)设gcd(a,b)为求解两个a,b自然数的最大公因数的函数:代码:int gcd(int a,int b){ if(b==0) return a; return gcd(b,a%b);}防爆栈版:int gcd(int a,int b){ while(b) { a=a%b; ...

2019-04-09 21:12:15 326 1

原创 17.Hidden Anagrams

DescriptionAn anagram is a word or a phrase that is formed by rearranging the letters of another. For instance, by rearranging the letters of “William Shakespeare,” we can have its anagrams “I am a ...

2019-03-31 19:04:50 192

原创 天梯赛-练习集

String类的使用:string类只能用cout输出,不能用printf输出 string类的函数1) =, s.assign() // 赋以新值 2) swap() // 交换两个字符串的内容 3) +=, s.append(), s.push_back() // 在尾部添加字符 4) s.insert() // 插入字符 5) s.erase() // 删除字符 6...

2019-03-29 21:47:50 174

原创 Codecraft-17 and Codeforces Round #391 B Bash's Big Day

第一眼看以为是一个dp 想了好久都没想出来最后去看了题解(太菜了),原来就是把每个数的因子筛选出来,一个数组记录每个因子的个数,然后遍历一遍取得出的因子最大的数#include<bits/stdc++.h>using namespace std;const int maxn = 100005;int s[maxn];int main(){ int n; ...

2019-03-26 21:56:54 166

转载 线性基

什么是线性基在线性代数里面我们其实已经学过线性基了,类似极大线性无关组和空间的基,一组线性无关的向量,可以构建一个向量空间,这组线性无关的向量就构成了这个空间的一个基地,这个基地就是线性基。线性基的意义线性基是一种特殊的基,它通常会在异或运算中出现,它的意义是:假设若干数的线性基是一组数a1,a2,...an,其中ax的最高位的1在第x位。并且通过原集合S的某一个最小子集S1使得S1内元...

2019-03-18 09:14:16 2694 1

原创 DP专题

P1004方格取数(多进程dp)一开始我的思路是用两次dp(但是普及+/提高的题目显然没这么容易A掉) 想了好久最后还是看了题解 发现一个新操作:多进程dp,我们假设两个人一起走,第一个人是(i,j),第二个人是(k,l),那么这两个人一起走向B的路线是:(i-1,j,k-1,l)(i,j-1,k-1,l)(i-1,j,k,l-1)(i,j-1,k,l-1)然后看数据范...

2019-03-13 20:57:57 315

原创 csust2019集训队选拔赛题解

第一次参加比赛 崩的实在是太惨了.. 只A了一道板子题(已经被自己菜哭了 没想到大家都掉线了 一起崩 这也给了我一个血的教训 以后比赛一定要多开几题简直是在死撑着坐满五个小时 当时其实老早就想溜了(以后比赛再也不吃香蕉了.. 肚子快疼炸了接下来我就按我自己的顺序来写题解(我怕我先写难的写不下去就咕了//耗时一星期终于竣工了emmmm哭泣的阿木木众所周知,阿木木是英雄联盟里面最...

2019-03-06 21:54:19 1753 1

原创 RMQ

RMQ(Range Minimum/Maximum Query),即区间最值查询,是指这样一个问题:对于长度为n的数列A,回答若干次询问RMQ(i,j),返回数列A中下标在区间[i,j]中的最小/大值。一般我们用ST算法解决这样的问题。ST(Sparse Table)算法可以在O(nlogn)时间内进行预处理,然后在O(1)时间内回答每个查询。一.预处理设A[i]是要求区间最值的数列,F[...

2019-02-24 17:17:04 298

原创 最短路

前置技能点:链式前向星简介:更为经济、简练的存图结构。 是前向星的改进(普通前向星和模拟链表还有一定的区别。普通前向星的建图过程涉及到排序操作,开销较大) 链式前向星巧妙地利用 结构体数组模拟了一个链表,并通过头插法进行边的插入操作。 除了 Dijkstra 和 SPFA,在差分约束系统、网络流、二分图匹配等其他经典的图论问题中也常常能看见链式前向星的身影。适用情况:(链...

2019-02-18 15:38:44 254

原创 16.中位数

题目链接题目描述给出一个长度为N的非负整数序列A[i],对于所有1 ≤ k ≤ (N + 1) / 2,输出A[1], A[3], …, A[2k - 1]的中位数。即前1,3,5,……个数的中位数。输入输出格式输入格式:输入文件median.in的第1行为一个正整数N,表示了序列长度。第2行包含N个非负整数A[i] (A[i] ≤ 10^9)。输出格式:输出文件med...

2019-02-17 19:13:19 333

原创 vector

一.解释:vector(向量):是一种顺序容器,事实上和数组差不多,但它比数组更优越。一般来说数组不能动态拓展,因此在程序运行的时候不是浪费内存,就是造成越界。而vector正好弥补了这个缺陷,它的特征是相当于可分配拓展的数组,它的随机访问快,在中间插入和删除慢,但在末端插入和删除快。二.用法:#include &lt;vector&gt;  a) vector&lt;int...

2019-02-17 17:28:22 94

原创 15.食物链

题目链接Description动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形。A吃B, B吃C,C吃A。 现有N个动物,以1-N编号。每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种。 有人用两种说法对这N个动物所构成的食物链关系进行描述: 第一种说法是"1 X Y",表示X和Y是同类。 第二种说法是"2 X Y",表示X吃Y。 此人对N个动物...

2019-02-17 16:58:52 194

原创 优先队列

优先队列,是一种可以自动排序的队列。声明公式形如:priority_queue&lt; 结构名, vector&lt;结构名&gt; , greater/less&lt;结构名&gt; &gt; 队列名;可以简写为priority_queue&lt;结构名&gt;,不过这样只能从大到小了。默认的优先队列(非结构体结构)priority_queue &lt;int&gt; q;代...

2019-02-15 19:00:42 147

原创 并查集

并查集,在一些有N个元素的集合应用问题中,我们通常是在开始时让每个元素构成一个单元素的集合,然后按一定顺序将属于同一组的元素所在的集合合并,其间要反复查找一个元素在哪个集合中。这一类问题近几年来反复出现在信息学的国际国内赛题中,其特点是看似并不复杂,但数据量极大,若用正常的数据结构来描述的话,往往在空间上过大,计算机无法承受;即使在空间上勉强通过,运行的时间复杂度也极高,根本就不可能在比赛规定的运...

2019-02-15 15:00:27 94

原创 14.导弹拦截

题目链接题目描述某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭。由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹。输入导弹依次飞来的高度(雷达给出的高度数据是≤50000的正整数),计算这套系统最多能拦截多少导弹,如果...

2019-02-13 16:30:56 171

原创 13.金明的预算方案

题目链接题目描述金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间。更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N元钱就行”。今天一早,金明就开始做预算了,他把想买的物品分为两类:主件与附件,附件是从属于某个主件的,下表就是一些主件与附件的例子:主件     附件电脑     打印机,扫描仪书柜     图...

2019-02-12 21:16:12 178

原创 线性dp

目录LIS  最长上升子序列LDS 最长下降子序列LCS 最长公共子序列一.LIS 最长上升子序列思路:每访问输入的一个数a[i],求往前面找比起小的一个数a[j],则h[i]=h[j]+1.状态转移方程:h[i]=max{h[j]+1},j&lt;i代码:int LIS(int n){ int res = 0; for(int i = 0; i &...

2019-02-12 20:44:35 136

转载 读入与输出的优化

1. 读入优化 C++中有一个函数:getchar() ,用于读入字符,那么这跟读入整数有什么关系呢? 其实,经过类似高精度的处理,就可以实现类型转换啦! 模板:#include&lt;cctype&gt;inline int read(){ int X=0,w=0; char ch=0; while(!isdigit(ch)) { ...

2019-02-12 15:18:44 156

转载 区间dp

模板:int dp[1010][1010];int main(){for(int i=0;i&lt;n;i++) dp[i][i]=........ for(int len=1;len&lt;=n;len++)//区间长度 { for(int i=0;i&lt;n;i++)//区间起点 { j=len-1+i;...

2019-02-11 21:10:50 157

原创 n的阶乘用m进制表示末尾零的个数

拿了一个cf大佬的代码,看不太懂,先码住代码: #include&lt;iostream&gt;#include&lt;cctype&gt;#include&lt;cstdio&gt;#include&lt;cstring&gt;#include&lt;string&gt;#include&lt;cmath&gt;#include&lt;ctime&gt;#include&

2019-02-11 17:20:40 1080

原创 n的阶乘末尾零的个数

末尾0的个数就是指这个数总共有几个10因子,而10又能表示成2和5的乘积。假设m=n!,那么m中2的因子个数肯定大于5的因子个数,所以m中5的因子个数即是所要求结果,显然n除以5可得到1~n中包含有一个因子5的个数,但是,1~n中有的数可以被5整除好几次,所以必须将这个数再除以5,得到1~n中包含有两个因子5的个数,依次循环进行累加即可得到全部5的因子个数代码:#include&lt;b...

2019-02-11 16:54:42 721

原创 快速幂

快速幂的目的就是做到快速求幂,假设我们要求a^b,按照朴素算法就是把a连乘b次,这样一来时间复杂度是O(b)也即是O(n)级别,快速幂能做到O(logn),快了好多好多。它的原理如下:假设我们要求a^b,那么其实b是可以拆成二进制的,该二进制数第i位的权为2^(i-1),例如当b==11时, a11=a(2^0+2^1+2^3),11的二进制是1011,11 = 2³×1 + 2²×0 + 2...

2019-02-08 18:32:04 129

原创 lower_bound

lower_bound()函数需要加载头文件#include&lt;algorithm&gt;,其基本用途是查找有序区间(前闭后开)中第一个大于或等于某给定值的元素的位置,其中排序规则可以通过二元关系来表示。函数原型: template&lt;class ForwardIterator, class Type&gt; ForwardIterator lower_bound( ...

2019-02-06 20:38:17 343

原创 11.数字组合

题目链接题目:有n个正整数,找出其中和为t(t也是正整数)的可能的组合方式。如: n=5,5个数分别为1,2,3,4,5,t=5; 那么可能的组合有5=1+4和5=2+3和5=5三种组合方式。 输入 输入的第一行是两个正整数n和t,用空格隔开,其中1&lt;=n&lt;=20,表示正整数的个数,t为要求的和(1&lt;=t&lt;=1000) 接下来的一行是n个正整数,用空格隔开...

2019-02-03 19:37:43 409

原创 10.最长公共子序列

如果s[n-1]=t[m-1],sn与tm的最长公共子序列问题就转换成了求sn-1与tm-1的最长公共子序列如果s[n-1]!=t[m-1],sn与tm的最长公共子序列问题就转换成了求sn与tm-1,sn-1与tm的最长公共子序列状态转移方程:如果s[i]=t[j],dp[i][j]=dp[i-1][j-1]+1如果s[i]!=t[j],dp[i][j]=max(dp[i][j...

2019-02-02 15:23:17 185

原创 9.背包问题

01背包:每个物品有一定价值和容量,要么取要么不取,只能取一次完全背包:在01背包基础上,每个物品可以取无数次多重背包:每种物品有一个固定取数的上限二维背包:对于每件物品,具有两种不同的费用,存在两种不同的限制。一般形式是对物品总数的限制。 01背包问题,是用来介绍动态规划算法最经典的例子我先先用最简单也是最容易想到的方法解决,针对每个物品是否能放入背包进行搜索代码...

2019-02-02 00:53:13 205

原创 素数筛选法

素数的求解在很多题目当中都会用到,最常见的就是直接暴力判断bool isprime(int number){ if(number==1) return 0; if(number==2) return 1; for(int i=2;i*i&lt;=number;i++) { if(number%i==0) return 0; } ...

2019-02-01 12:09:43 407

原创 7.康师傅的工人

题目链接题目:三个法师康的工人每天早上6点到工厂开始到三条产品生产线上组装桔子手机。第一个工人在200时刻开始(从6点开始计时,以秒作为单位)在生产线上开始生产,一直到1000时刻。第二个工人,在700时刻开始,在1100时刻结束。第三个工人从1500时刻工作到2100时刻。期间最长至少有一个工人在生产线上工作的连续时间为900秒(从200时刻到1100时刻),而最长的无人生产的连续时间(...

2019-01-31 23:14:01 162

原创 next_permutation

STL提供了两个用来计算排列组合关系的算法,分别是next_permutation和prev_permutation。前者是求出下一个排列组合,而后者是求出上一个排列组合。举个例子:对序列 {a, b, c},每一个元素都比后面的小,按照字典序列,固定a之后,a比bc都小,c比b大,它的下一个序列即为{a, c, b},而{a, c, b}的上一个序列即为{a, b, c},同理可以推出所有的...

2019-01-31 22:14:05 169

原创 6.仙岛求药

题目链接题目少年李逍遥的婶婶病了,王小虎介绍他去一趟仙灵岛,向仙女姐姐要仙丹救婶婶。叛逆但孝顺的李逍遥闯进了仙灵岛,克服了千险万难来到岛的中心,发现仙药摆在了迷阵的深处。迷阵由 M \times NM×N 个方格组成,有的方格内有可以瞬秒李逍遥的怪物,而有的方格内则是安全。现在李逍遥想尽快找到仙药,显然他应避开有怪物的方格,并经过最少的方格,而且那里会有神秘人物等待着他。现在要求你来帮助他...

2019-01-31 20:55:20 560

原创 DFS与BFS

一般来说用BFS解决的问题都可以用DFS来解决。bfs=队列,入队列,出队列;dfs=栈,压栈,出栈深度优先算法适合目标比较明确,以找到目标为主要目的的情况,例如走迷宫问题; 广度优先算法适合在不断扩大遍历范围时找到相对最优解的情况,例如最短路问题。但是其实在平时的题目中,并不会出现遍历一棵树这样的题目,因此,如何将其状态转化成树的节点,就尤其地重要。DFS模板:void ...

2019-01-31 12:19:08 392

eclipsec(java编译器)

java比较基本的开发工具,新手建议用中文版的,英文版的不容易操作。

2019-02-06

空空如也

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

TA关注的人

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