![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ACM 机试 练级
折腾怪
这个作者很懒,什么都没留下…
展开
-
数论题目入门 基础积攒
基本性质若p|(a-b),则a≡b (% p)。例如 11 ≡ 4 (% 7), 18 ≡ 4(% 7)(a % p)=(b % p)意味a≡b (% p)对称性:a≡b (% p)等价于b≡a (% p)传递性:若a≡b (% p)且b≡c (% p) ,则a≡c (% p)运算规则模运算与基本四则运算有些相似,但是除法例外。其规则如下:(a + b) % p = (a % p + b % p)...原创 2018-04-07 14:16:35 · 428 阅读 · 0 评论 -
树形DP——Codeforces Choosing Capital for Treeland
http://codeforces.com/problemset/problem/219/D题意:给一个n节点的有向无环图,要找一个这样的点:该点到其它n-1要逆转的道路最少,(边<u,v>,如果v要到u去,则要逆转该边方向)如果有多个这样的点,则升序输出所有思路:把边的方向化为权值,正向为1,逆向为0。问题转化为找哪些点的在遍历全图后总权值最大。一个节点可以走自己的子树,也可以走自己...原创 2018-04-12 16:24:07 · 253 阅读 · 0 评论 -
poj2528贴海报(线段树离散化)
//poj2528贴海报(线段树离散化)#include<cstring>#include<iostream>#include<cstdio>#include<algorithm>using namespace std;const int maxn=100005; //要开10倍的数组,否则REbool hash[maxn];int ...转载 2018-04-06 13:45:11 · 362 阅读 · 0 评论 -
线段树区间合并 维护连续区间长度 模版(自己)
#define lson rt<<1#define rson rt<<1|1void BuildTree(int l, int r, int rt) { lazy[rt] = -1; lsum[rt] = rsum[rt] = sum[rt] = r-l+1; if (l == r) return ; int m =...原创 2018-04-06 14:43:55 · 455 阅读 · 0 评论 -
wannafly 12 删除子串 dp
原文:https://www.cnblogs.com/genius777/p/8636661.html删除子串题目描述 给你一个长度为n且由a和b组成的字符串,你可以删除其中任意的部分(可以不删),使得删除后的子串“变化”次数小于等于m次且最长。变化:如果a[i]!=a[i+1]则为一次变化。(且新的字符串的首字母必须是'a')如果初始串全为b,则输出0。输入描述:第一行输入两个数n,m。(1 &...转载 2018-04-12 23:06:27 · 137 阅读 · 0 评论 -
经典问题——进程和线程区别
写的很全面http://mp.weixin.qq.com/s?__biz=MjM5MDIzNDQ5MQ==&mid=205544379&idx=2&sn=d61335de549e0015ad9f131600d4eb22&scene=1&key=0acd51d81cb052bce2c7995ff6e99707a99605041e7a68d44569fcc2ca...转载 2018-04-22 21:30:27 · 104 阅读 · 0 评论 -
B
#include <stdio.h>#include <string.h>#include <iostream>#include <algorithm>#include <stack>#include <vector>#include <queue>#include <set&g原创 2018-04-13 21:17:39 · 111 阅读 · 0 评论 -
Bilibili 笔试扭蛋器----回溯dfs 9.21
当时要上课去。。。没来得及做编程题。。。看完题目想了一下觉得不做亏了,有点简单题目大概是说给一个target数值,从x=0开始,2号可以生成2*x+1,3号生成2*x+2,输出最终能生成target的顺序比如10,输出233其实解空间就是一个递归树,不行就回溯回去就好了自然就是dfs,代码如下vector<int> ans;int target;void df...原创 2018-09-23 17:40:00 · 359 阅读 · 0 评论 -
邻接表终极解析===和vector写法的区别
参考:https://blog.csdn.net/deritt/article/details/50640997先放写法,再看例子就懂了首先我们需要定义一个数组 head[]int head[maxn];//head[i]表示节点i所连的最后一条边的编号(这里的最后指输入数据中最后加进来的边)其次需要定义一个结构体来存贮边的信息struct node{ int v...原创 2018-09-26 22:45:16 · 422 阅读 · 0 评论 -
SPFA-DFS P3385 模板 判断负环===vector为啥过不了?
很蛋疼,用vector写了一遍只AC两个用例,其他WA,为啥呢?想不通啊。。。不应该啊改成邻接表写,瞬间AC。。。两者最多是个遍历顺序不同,存取效率不同,不至于WA啊,TLE还说的过去,有懂的指点一下啊邻接表写:#include <iostream>#include <map>#include <stack>#include <v...原创 2018-09-27 00:41:26 · 204 阅读 · 0 评论 -
KMP----next数组 最长相同前后缀 递归求法解释
理解递归(推)求解next数组的代码是个难点,对于刚入门来说next数组求解的时候是 已知next[0....j],next[j]=k.求解next[j+1]首先next[j]=k的含义是说前j-1个字符最长相同前后缀是k,也说明前缀的最后一个字符下标是k-1如果p[j]==p[k],那很明显是next[j+1]=k+1;p[j]!=p[k]时,这时候关键记住一句话:模式串的自...原创 2018-09-27 17:00:54 · 2589 阅读 · 0 评论 -
校招9.28笔试题:1-N 的幂集中集合个数 去除含相邻数字的集合
/* 2018.9.28 AQY笔试:1-N 的幂集中集合个数 去除含相邻数字的集合 比如1,2,3 可选空,1,2,3,13五种*/#include <iostream>#include <map>#include <set>#include <stack>#include <vector>#include <...原创 2018-09-28 20:51:27 · 220 阅读 · 0 评论 -
树形dp——树的最远距离 hdu2196
【题意】求树上每个点的最远距离是多少对于<u,v>(有向),dp[u][0]表示在u的子树下u的最远距离是多少dp[u][1]表示在u的子树下(和dp[u][0]不是同一孩子)u的次远距离是多少dp[u][2]表示通过u的父亲能走的最远距离是多少第一次从下到上,对于<u,v>(有向),状态转移显然是 dp[u][0] = dp[v][0]+w[i];所以要先算出dp[v][...原创 2018-04-12 15:30:13 · 466 阅读 · 0 评论 -
树形dp——树的重心(2) 代码调试理解
和树的最大独立问题类似,先任选一个结点作为根节点,把无根树变成有根树,然后设d(i)表示以i为根的子树的结点的个数。不难发现d(i)=∑d(j)+1,j∈s(i)。s(i)为i结点的所有儿子结点的编号的集合。程序也十分简单:只需要DFS一次,在无根树有根数的同时计算即可,连记忆化都不需要——因为本来就没有重复计算。那么,删除结点i后,最大的连通块有多少个呢?结点i的子树中最大有max{d(j)}个...原创 2018-04-11 19:30:09 · 225 阅读 · 0 评论 -
树形dp ——树的重心
1.只需要求出最大子树中节点数最小的数目即可题意:有一个国王要把他的领土分给两个儿子,国王的领土是一棵树,N个结点,N-1条边把这些结点连起来,现在大小儿子要选择一个点作为他的首都,那么除首都分别是这两个儿子之外,其他的城市(结点)根据离谁近就归谁所有,如果一样远的话就归大儿子所有,现在假设两个人都采取最优策略,且大儿子先选,问大儿子最多能够得到多少城市?解法:如果大儿子选择了一个点P,那么这个小...原创 2018-04-11 17:38:10 · 823 阅读 · 0 评论 -
对称和反对称矩阵
链接:https://www.nowcoder.com/acm/contest/94/H来源:牛客网时间限制:C/C++ 2秒,其他语言4秒空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld题目描述给出一个N*N的方阵A。构造方阵B,C: 使得A = B + C.其中 B为对称矩阵,C为反对称矩阵。 对于方阵S中的任意元素,若(S)ij = (...原创 2018-04-07 19:21:50 · 4415 阅读 · 0 评论 -
对称和反对称
链接:https://www.nowcoder.com/acm/contest/94/H来源:牛客网时间限制:C/C++ 2秒,其他语言4秒空间限制:C/C++ 262144K,其他语言524288K64bit IO Format: %lld题目描述给出一个N*N的方阵A。构造方阵B,C:使得A = B + C.其中 B为对称矩阵,C为反对称矩阵。对于方阵S中的任意元素,若(S)ij = (S)j...原创 2018-04-07 19:23:29 · 3716 阅读 · 0 评论 -
SOJ 4543 4542
http://acm.scu.edu.cn/soj/problem.action?id=4542递归用数组保存中间值#include <cstdio> #include <cmath> #include <cstring> #include <algorithm> #include <iostream> typedef...原创 2018-04-08 17:49:18 · 112 阅读 · 0 评论 -
上海交大机试真题—最短路径(最小生成树解法)
题目描述N个城市,标号从0到N-1,M条道路,第K条道路(K从0开始)的长度为2^K,求编号为0的城市到其他城市的最短距离输入描述:第一行两个正整数N(2<=N<=100)M(M<=500),表示有N个城市,M条道路接下来M行两个整数,表示相连的两个城市的编号输出描述:N-1行,表示0号城市到其他城市的最短路,如果无法到达,输出-1,数值太大的以MOD 100000 的结果输出...原创 2018-03-26 20:08:24 · 830 阅读 · 1 评论 -
soj 4539 贪心+优先队列
不难,想到优先队列就比较容易做,具体思路见代码注释也可以使用 重载小于号写到结构体内如果按能力值排序会比较麻烦一点#include<cstdio>#include<algorithm> #include<queue> using namespace std; const int N = 1e5+16; struct Node { ...转载 2018-04-09 17:54:09 · 188 阅读 · 0 评论 -
POJ hotel 线段数维护区间长度,输出最左端值(hdu 屌丝女神)
分类:线段树维护长度题目,连续区间题目大意:Hotel有N(1 ≤ N ≤ 50,000)间rooms,并且所有的rooms都是连续排列在同一边,groups需要check in 房间,要求房间的编号为连续的r..r+Di-1并且r是最小的;visitors同样可能check out,并且他们每次check out都是编号为Xi ..Xi +Di-1 (1 ≤ Xi ≤ N-Di+1)的房间,题目...原创 2018-04-09 19:14:07 · 164 阅读 · 0 评论 -
SOJ 4541
//用m条线段覆盖数轴。求没有被线段覆盖的长度。#include<iostream> #include<cstring> #include<cstdio> using namespace std; int main() { int T,s[20000+16],vis[20000+16],L,M,i,l,r; lon...原创 2018-04-09 20:42:21 · 183 阅读 · 0 评论 -
C++ STL中的优先队列(priority_queue)使用
原文:https://www.cnblogs.com/cielosun/p/5654595.html今天讲一讲优先队列(priority_queue),实际上,它的本质就是一个heap,我从STL中扒出了它的实现代码,大家可以参考一下。首先函数在头文件<queue>中,归属于命名空间std,使用的时候需要注意。队列有两种常用的声明方式:std::priority_queue<T&...转载 2018-03-27 13:36:06 · 2584 阅读 · 0 评论 -
char和int
在C语言中并没有char类型的常量(但是在C++中却有,字符常量都是char类型),其实是用int表示char,字符型与整型相比只是更加节省内存。(在所有数据类型中,char类型占用的内存空间最少)有符号的字符表示-128~127,无符号字符表示0~255。char相当于signed char还是unsigned char取决于编译器。字符型数据在内存中是以二进制形式存放的,并不是真正的把一个字符...转载 2018-03-27 18:10:15 · 6966 阅读 · 0 评论 -
POJ Mayor's posters——线段树+离散化
原文:http://blog.163.com/cuiqiongjie@126/blog/static/85642734201261151553308/大致题意:有一面墙,被等分为1QW份,一份的宽度为一个单位宽度。现在往墙上贴N张海报,每张海报的宽度是任意的,但是必定是单位宽度的整数倍,且<=1QW。后贴的海报若与先贴的海报有交集,后贴的海报必定会全部或局部覆盖先贴的海报。现在给出每张海报所...转载 2018-04-03 16:00:16 · 106 阅读 · 0 评论