![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
FACEYc
这个作者很懒,什么都没留下…
展开
-
set 容器的运用
简单题 可以优先队列 vector 但set容器更为简单题目描述:在学习Operating System的过程中,Glory遇到了这样一个问题,现在有一个大小为可以容纳N个页面的内存,硬盘内的内容被分成M个页面,用1~M来标识,一开始内存里没有任何页面,接下来用户会请求Q个页面,你需要设计一个置换算法,使得缺页发生的次数最少。缺页是指用户请求某个编号的页面,但这个页面没有在内存中的情况。发生缺页之...转载 2018-04-23 21:55:44 · 141 阅读 · 0 评论 -
字典树
字典树算法上面的KMP是一对一匹配的时候常用的算法。而字典树则是一对多的时候匹配常用算法。其含义是,把一系列的模板串放到一个树里面,然后每个节点存的是它自己的字符,从根节点开始往下遍历就可以得到一个个单词了。(图片来自百度)我这里写的代码稍微和上面有一点区别,我的节点tnode里面没有存它本身的字符,而是存一个孩子数组。所以当数据量很大的时候还是需要做一些变通的,不可直接套用此代码...转载 2018-08-17 11:36:17 · 190 阅读 · 0 评论 -
线段树 (P3373 【模板】线段树 2)
题目描述如题,已知一个数列,你需要进行下面三种操作:1.将某区间每一个数乘上x2.将某区间每一个数加上x3.求出某区间每一个数的和输入输出格式输入格式: 第一行包含三个整数N、M、P,分别表示该数列数字的个数、操作的总个数和模数。第二行包含N个用空格分隔的整数,其中第i个数字表示数列第i项的初始值。接下来M行每行包含3或4个整数,表示一个操作,具体如下:...原创 2018-08-23 17:17:25 · 382 阅读 · 0 评论 -
dp P1968 美元汇率 题解
题目背景此处省略maxint+1个数题目描述在以后的若干天里戴维将学习美元与德国马克的汇率。编写程序帮助戴维何时应买或卖马克或美元,使他从100美元开始,最后能获得最高可能的价值。输入输出格式输入格式: 输入文件的第一行是一个自然数N,1≤N≤100,表示戴维学习汇率的天数。接下来的N行中每行是一个自然数A,1≤A≤1000。第i+1行的A表示预先知道的第i+1天的...原创 2018-08-20 22:39:54 · 589 阅读 · 0 评论 -
矩阵快速幂 P1939 【模板】矩阵加速(数列)
题目描述a[1]=a[2]=a[3]=1a[x]=a[x-3]+a[x-1] (x>3)求a数列的第n项对1000000007(10^9+7)取余的值。输入输出格式输入格式:第一行一个整数T,表示询问个数。以下T行,每行一个正整数n。输出格式:每行输出一个非负整数表示答案。输入输出样例输入样例#1: 复制36810输出样例#1: 复...原创 2018-08-21 16:39:11 · 354 阅读 · 0 评论 -
C. Maximal Intersection
转载:http://www.cnblogs.com/shuaihui520/p/9538450.html题意给你N个线段(一条直线上),问删去一个之后,最长公共长度 ;分析:首先我们得先知道n条线段公共的线段一定是(LMAX,RMIN) ,那我们可以先排序,然后枚举删除边;#include <math.h>#include <algorithm>#in...转载 2018-08-28 23:45:35 · 224 阅读 · 0 评论 -
前缀和问题
题大意:给你n个数和一个k,问有多少个区间可以得到sum%k==0,比如(l,r),(a[l]+a[l+1]+........+a[r])%k==0解法:利用前缀和保存得到前缀和数组,并用一个数组记录下此时前缀和出现的次数,因为当重复出现同一个前缀和的时候代表有一段区间能够%k==0。代码:#include <math.h>#include <algorith...转载 2018-08-29 00:12:48 · 564 阅读 · 0 评论 -
Manthan, Codefest 18 (rated, Div. 1 + Div. 2) D. Valid BFS?【set+BFS】
转载:https://blog.csdn.net/qq_36368339/article/details/82343737题意:给你一颗树(无向图),问你是否满足BFS序?分析:用dfs把树离出来(应该相当于分支杆),然后bfs去遍历,看是否满足;由于兄弟节点顺序可能不一致,用set查找,如果在set里面,说明存在这个序。代码:#include <math.h>#in...转载 2018-09-04 19:28:00 · 171 阅读 · 0 评论 -
dp (多重背包的二进制优化)
转载:https://blog.csdn.net/bentutut/article/details/77855318在多重背包的问题中,有时物品的件数会给的非常大,此时从1件到n件遍历很容易超时,下面讲一下二进制优化的思路 答题思想为:把同种多件物体转换为多种单件物体。 我们已经知道,1、2、4、8 、16 、 32……2^n 可以组成从1到2^(n+1)-1中的任何数,...转载 2018-09-17 20:23:10 · 615 阅读 · 0 评论 -
Codeforces Round #510 (Div. 2) C. Array Product
不会用set所以就用队列来模拟,大体思想是(没有)反正数据弱就每次取2个放回一个这样循环跑#include <iostream>#include <algorithm>#include <cmath>#include <stdio.h>#include <queue>#include <vector>#inc...原创 2018-09-17 20:44:37 · 170 阅读 · 0 评论 -
树状数组
转载:https://www.cnblogs.com/hsd-/p/6139376.htmlint lowbit(int t) { return t&(-t); }void add(int x,int y) { for(int i=x;i<=n;i+=lowbit(i)) tree[i]+=y; }int getsum(int x) { int ans=0;...转载 2018-08-17 11:26:58 · 254 阅读 · 0 评论 -
KMP(模板)
KMP算法KMP算法是用来处理一对一的匹配的。朴素的匹配算法,或者说暴力匹配法,就是将两个字符串从头比到尾,若是有一个不同,那么从下一位再开始比。这样太慢了。所以KMP算法的思想是,对匹配串本身先做一个处理,得到一个next数组。这个数组是做什么用的呢?next [j] = k,代表j之前的字符串中有最大长度为k 的相同前缀后缀。记录这个有什么用呢?对于ABCDABC这个串,如果我们匹配A...原创 2018-08-17 09:34:39 · 4574 阅读 · 4 评论 -
C. The Phone Number ( Codeforces Round #502 )
C. The Phone Numbertime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputMrs. Smith is trying to contact her husband, John Smith, but s...转载 2018-08-09 10:04:13 · 201 阅读 · 0 评论 -
调查问卷(2018"百度之星"程序设计大赛 - 资格赛 )状态压缩
调查问卷 Time Limit: 6500/6000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others) Total Submission(s): 356 Accepted Submission(s): 182 Problem Description 度度熊为了完成...转载 2018-08-10 12:03:59 · 265 阅读 · 0 评论 -
牛客练习赛24 插排树(spfa)
已知插排树的根节点在讲台上,有且仅有一个根节点(根节点入度为0),最远距离即所有插排的长度,小K电脑线的长度忽略不计本题良心大样例下载地址: https://kench.co/tree.zip题目描述:第一行一个整数n表示有n个节点,然后n-1行,每行三个整数a,b,c,表示插排a是接在插排b上的,插排a的长度为c输出:一个整数n表示最远距离样例:92 1 23 1 2...原创 2018-08-11 10:51:00 · 230 阅读 · 0 评论 -
树状数组(区间更新)差分思想
已知一个数列,你需要进行下面两种操作:1.将某区间每一个数数加上x2.求出某一个数的和题: 第一行包含两个整数N、M,分别表示该数列数字的个数和操作的总个数。第二行包含N个用空格分隔的整数,其中第i个数字表示数列第i项的初始值。接下来M行每行包含2或4个整数,表示一个操作,具体如下:操作1: 格式:1 x y k 含义:将区间[x,y]内每个数加上k操作2: 格...转载 2018-08-14 20:59:41 · 277 阅读 · 0 评论 -
[国家集训队]小Z的袜子 (莫队算法)
题目描述作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿。终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命……具体来说,小Z把这N只袜子从1到N编号,然后从编号L到R(L 尽管小Z并不在意两只袜子是不是完整的一双,甚至不在意两只袜子是否一左一右,他却很在意袜子的颜色,毕竟穿两只不同色的袜子会很尴尬。你的任务便是告诉小Z,他有多大的概率抽...转载 2018-08-07 15:33:31 · 3472 阅读 · 0 评论 -
E. XOR and Favorite Number(莫队算法)
E. XOR and Favorite Numbertime limit per test4 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputBob has a favorite number k and ai of length n. Now he...原创 2018-08-07 19:57:20 · 806 阅读 · 0 评论 -
Dungeon Master POJ - 2251 (简单bfs只用于入门理解用)
You are trapped in a 3D dungeon and need to find the quickest way out! The dungeon is composed of unit cubes which may or may not be filled with rock. It takes one minute to move one unit north, south...原创 2018-08-08 17:04:07 · 594 阅读 · 0 评论 -
2018 Multi-University Training Contest 8 1001 Character Encoding【容斥】
题意:每个数字的取值范围为0到n-1,共有m个数字,求总和为k的方案数。因为k的上限为1e5,那么我们不妨把k看做k个1,然后通过m-1个隔板来分割出m个数字。但是这么做会有一个问题,那就是数字可能为0。那么不妨将数字的取值范围改成1-n,m个数所以k要相应的变成k+m,那么就可以使用隔板法了。先无限制的求一下总数:C(m+k-1,m-1)如果我们现在拿出来n个1,将剩下的数分割成m个...转载 2018-08-16 11:22:41 · 334 阅读 · 0 评论 -
ACM-ICPC 2018 徐州赛区网络预赛 G
set容器的运用+本身的lower_bound,逆序找前一个比 当前波浪小的最大波浪;#include <cstdio>#include <iostream>#include <algorithm>#include <cstring>#include <vector>#include <set>#includ...原创 2018-09-10 19:50:31 · 184 阅读 · 0 评论