摘要: 好像马上就要出去打铁了QAQ,所以是不是要做个模板带过去也玩一玩? 那就做吧。。。 标题就设为萌新模板吧。。。各种萌新讲解对吧。。。。图论拓扑排序最短路最小生成树二分匹配强连通Tarjan二分算法返回一个非递减序列[first, last)中的第一个大于等于值val的位置。lowe... 阅读全文
posted @ 2017-03-30 14:02 see_you_later 阅读(293) 评论(0) 推荐(0) 编辑
摘要: (我一定是A了一题假DP) 给定序列a[0],a[1],a[2],...,a[n-1] 和一个整数K时, 有多少子序列所有元素乘起来恰好等于K。 Kusing namespace std;typedef long long LL;const LL mod=1e9+7;const int N=1e... 阅读全文
posted @ 2017-03-29 23:15 see_you_later 阅读(259) 评论(0) 推荐(0) 编辑
摘要: 题意: 0 a b 把 [a, b] 区间内的所有数全变成0 1 a b 把 [a, b] 区间内的所有数全变成1 2 a b 把 [a,b] 区间内的所有数全部取反 3 a b 询问 [a, b] 区间内总共有多少个1 4 a b 询问 [a, b] 区间内最多有多少个连续的1 ... 阅读全文
posted @ 2017-03-29 21:32 see_you_later 阅读(271) 评论(0) 推荐(0) 编辑
摘要: 题意: Q L 询问数列最后 L 个数中最大的数。 A n 将 n + t ( t_init = 0 ), 然后插到最后去。 思路: 感觉动态地插入,很有问题。 数组地长度会时常变化,但是可以先预处理就是有2e5个结点(最多)。 然后就是插咯? 它保证query 的时候 L using name... 阅读全文
posted @ 2017-03-29 18:49 see_you_later 阅读(277) 评论(0) 推荐(0) 编辑
摘要: 题意: n个数,m个操作。 1,L,R 询问[L , R] 的总和。 2,L,R 将区间所有数都开根号。 思路: 区间和简单。 主要就是一个 区间所有元素相同的标记Same ,但是这样是不是要求太高? sqrt 好像就算是1e9,也down的非常快到1了,且这里还没有区间加。 so,只要考虑... 阅读全文
posted @ 2017-03-28 22:35 see_you_later 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 区间DP大暴力吧?GG. dp[ i ] 为字符至 i 的最少数量。 如果[Left , Right]是回文串, dp[Right] = min(dp[ Right ] , dp[Left-1] + 1); #includeusing namespace std;const int N=5e... 阅读全文
posted @ 2017-03-28 19:37 see_you_later 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 包 什么是包 为了使类易于查找和使用,为了避免命名冲突和限定类的访问权限,可以将一组相关类与接口“包裹”在一起形成包。 有可能同名类的存在而导致命名冲突,而位于不同包中的类及时同名也不会冲突。 缺省包 (来自百度) 1、缺省包就是默认包,也是没有包的意思。 2、就是为了把java文件归类到一个文... 阅读全文
posted @ 2017-03-28 10:56 see_you_later 阅读(273) 评论(0) 推荐(0) 编辑
摘要: 思路: 靠评测机抖一抖的思路: 拿个队列维护一下符合类型的可以搜索(指四周还存在可以遍历的点)的点。然后暴力搜索,所以问题来了,这个暴力搜索会大大地重复遍历次数。 DFS遍历图以前一直忽略重复,以为搜到打个标记复杂度就很棒棒了,其实还是有一堆重复。 这个思路的代码见第一份。 正解: 那么问... 阅读全文
posted @ 2017-03-27 23:06 see_you_later 阅读(243) 评论(0) 推荐(0) 编辑
摘要: 思路: 对于结点 u 的子节点 v, 如果已经一直到结点 u 的答案ans[u],那么转移到对于结点 v,num[v] 为 v为根的树的结点个数,那么对于结点v的答案相对于结点u的答案来说, ans[v]=-num[v]*edge[u,v]+(n-num[v])*edge[u,v]; /... 阅读全文
posted @ 2017-03-26 22:39 see_you_later 阅读(245) 评论(0) 推荐(0) 编辑
摘要: 呃,很难受的比赛,中途做到口干舌燥还想尿尿//哦,题目,出的很棒,什么都可以做做,什么都做不下来。 怎么说呢?好像也没犯什么错误,除了日常开始手抖了一下。。。后面状态进入挺快的,而且遗憾?3-2吧,tol-=30; 不过也没啥卵用,厂长260吊打,可以很强势。 //so?好好努力,提升实力吧。... 阅读全文
posted @ 2017-03-26 09:10 see_you_later 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 静态建树判一下1-n是不是为空就好了,如果有空的 就说明不是complete binary tree (和线段树建树差不多啊)Left=2*root;Right=2*root+1 #include using namespace std;typedef long long LL;struc... 阅读全文
posted @ 2017-03-24 15:30 see_you_later 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 思路: 最后发现对当前列车比我大的编号的栈有没有就好了,所以开个vector存一下,然后二分一下vector找一下第一个比我大的数就好了 #include using namespace std;typedef long long LL;const int N=1e5+10;int n,a[N]... 阅读全文
posted @ 2017-03-24 14:43 see_you_later 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 这种区间的贪心好像都出“烂”了? 不过还是想写一下。。。 先按照区间左端点排序一下,然后搞个优先队列维护当前最小的右端点。 #include using namespace std;typedef long long LL;const int N=1e5+10; struct asd{ int ... 阅读全文
posted @ 2017-03-23 00:09 see_you_later 阅读(248) 评论(0) 推荐(0) 编辑
摘要: 题意: 只有一个环,然后环都是0(环缩点相当于树的根),然后其余的输出到根的距离 思路: 可以从度为1的 开始搜 把那些分支全标记掉,然后再取没有标记掉的,BFS一下搞出距离。 具体这个标记: 倒着搜这样肯定没有多对一,标记掉度等于2的那些点就好了,度>2的要减减,而且环里的点的度不可能搜到度 ... 阅读全文
posted @ 2017-03-23 00:02 see_you_later 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 哇塞?开始的三个数其中两个数一定能确定一个序列。(鸽巢原理) #include using namespace std;typedef long long LL;const int N=3e4+10;int a[N],n;bool vis[N];void print(vectorv){ ... 阅读全文
posted @ 2017-03-22 00:05 see_you_later 阅读(276) 评论(0) 推荐(0) 编辑
摘要: 怎么麻烦怎么来了??? 提供几个案例: 5 0.00001 0.00001 0 0.0 0.0222 1 0.001 0.2000 2 005.06 0.230 1 00.020 0 贴份代码跑。。 #include using namespace std;typedef long lon... 阅读全文
posted @ 2017-03-22 00:02 see_you_later 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 思路: a素数->b合数 c素数->b合数 a,c属于一类 so,预处理相同的,并且计数。1000怎么搞都无压力; 我这里也预处理了字母个数,从集合大的枚举下来,每次拿字母个数最多的去匹配。 #include using namespace std;typedef long long LL;co... 阅读全文
posted @ 2017-03-21 22:54 see_you_later 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 1.单case很多清空没必要的 2.string+ char 最好用pushback 3.string +string就直接+ #include using namespace std;typedef long long LL;const int N=2e6+10;map mp;str... 阅读全文
posted @ 2017-03-21 22:50 see_you_later 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 思路: 求所有树的最大高度? 注意:所有树从树根开始? #include using namespace std;typedef long long LL;struct asd{ int to; int next;}e[2500];int head[2500],tol;int pre[2500... 阅读全文
posted @ 2017-03-20 22:38 see_you_later 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 思路: 暴力。。我不会呀。。 YY一个二分匹配嘛,然后数组开小了。GG for an hour. #include using namespace std;typedef long long LL;int cy[110];int cx[110];int n,m;char ma[15][15];i... 阅读全文
posted @ 2017-03-20 22:29 see_you_later 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 思路: 枚举0-9之间的数,然后判断。 然后一鼓作气打成了大模拟。。。。我日啊。。。 心疼自己。 #include using namespace std;typedef long long LL;const int N=1e4+10;int n,k;char s[N],ss[N];int nu... 阅读全文
posted @ 2017-03-20 22:27 see_you_later 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 问题一(未完): 考虑n行m列的棋盘,其某些方格禁止落子。能够被放到棋盘上的非攻击型车的最多个数。 考虑4行5列的棋盘,其落子位置如下表: y1 y2 y3 y4 y5 x1 * x2 * * x3 * * * x4 * ... 阅读全文
posted @ 2017-03-20 00:56 see_you_later 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 思路: 7越多越好,然后从7最多个数枚举过去,判断一下剩下的能不能用4解决就好了; #include using namespace std;typedef long long LL;int main(){ int m,n; scanf("%d",&n); int q=n/7;... 阅读全文
posted @ 2017-03-20 00:09 see_you_later 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 思路: 原来string类能sort 和 swap....太强了.... 注意:字典序最小输出,因为某个地方写挫了,sort了n发,代码挫。 #include using namespace std;typedef long long LL;int tol;mapid;mapxs;string ... 阅读全文
posted @ 2017-03-20 00:07 see_you_later 阅读(313) 评论(0) 推荐(0) 编辑
摘要: 题意: n g dough m种商品? 每种有ai stuffing, 拿bi stuffing + ci dough -> di tugriks rest c0 dough -> d0 tugriks 求最大的tugriks 思路: dough是爸爸, dp[i] 代表 在花费 i 情况下 ... 阅读全文
posted @ 2017-03-20 00:03 see_you_later 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 考察: 1.二叉树的建树 2.前序遍历,后序遍历 3.BST的特性 这题的思路: 告诉你数组是先序遍历的,so 根已经知道了(数组首位元素),那么按照BST,建一下树(要两次,另外一次是镜像的); 跑一跑先序遍历,对一对是不是呀? 然后是的话就输出后序遍历的方式。 THAT'S ALL; #... 阅读全文
posted @ 2017-03-19 10:22 see_you_later 阅读(235) 评论(0) 推荐(0) 编辑
摘要: 思路: DP[ i ] 代表以值 i 结尾的当前最长长度。 每次枚举序列数组,dp[ i ] = max( dp[ i ] ,dp[ a[j] ] + 1); #include using namespace std;typedef long long LL;const int N=2e2+10... 阅读全文
posted @ 2017-03-19 09:37 see_you_later 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 思路: n3: 我们可以轻松证明n,n-1这两个数互质: 设gcd(n,n-1)=g,n=g*k1,n-1=g*k2; n-(n-1)=g(k1-k2)=1; 所以 g=1. 当n,n-2互质就更好了,n*(n-1)*(n-2)最大呀。 设gcd(n,n-2)=g,n=g*k1,n-2=g*k... 阅读全文
posted @ 2017-03-18 22:20 see_you_later 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 意: 求最少需要几个s1串拼接存在子串s2 (1≤|s1|≤1e4,1≤|s2|≤1e6). 思路(感谢ZQC): 每个字母的出现位置存个vector. 假设你当前已经用了A串的前x个字符,现在想要匹配一个'x',那你就在'x'的vector那里二分出第一个大于x的位置, 如果匹配不到的话,... 阅读全文
posted @ 2017-03-18 11:30 see_you_later 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 题意: 判断这副图是否满足根是一个环的缩点,然后其余点都是一个点,满足树特性。 思路: 一开始就像无向图缩点乱搞,然后实在太烦搞不下去。。。。 一副图是满足结点和边数量相等,且连通,则一定有一个环。 so...实际代码只有判连通= = #include using namespace std;t... 阅读全文
posted @ 2017-03-17 23:02 see_you_later 阅读(201) 评论(0) 推荐(0) 编辑
摘要: Codeforces79C 题意: 求s串的最大子串不包含任意b串; 思路: dp[i]为以i为起点的子串的最长延长距离。 我们可以想到一种情况就是这个 i 是某个子串的起点,子串的长度-1就是最短, 或者这个 前面的长度 +这个i 就是答案。 所以预处理一下,以 i 为起点的最短子串距离就好... 阅读全文
posted @ 2017-03-16 21:27 see_you_later 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 这题略。。。恶心。。 他说归并排序依次是相邻有序两块合并,而一向打惯了递归??? #include using namespace std;typedef long long LL;const int N=1e2+10;int b[N];void Merge(int a[], int temp[... 阅读全文
posted @ 2017-03-15 00:14 see_you_later 阅读(189) 评论(0) 推荐(0) 编辑
摘要: #includeusing namespace std;typedef long long LL;struct BT{ int w; BT *L; BT *R;};BT* Creat(int *post,int *in,int n){ BT* p; for(int i=0;iw=in[i]; ... 阅读全文
posted @ 2017-03-13 23:13 see_you_later 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 这里主要贴一些简易代码。 依次插入结点建堆 插入在最后,所以每次是向上过滤 void Build_Min_Heap(int a[],int n){ int i,j; for(i=1;i1&&a[j]>=1; } }} 对整体建堆 //以这个根节点向下过滤。void A... 阅读全文
posted @ 2017-03-13 12:39 see_you_later 阅读(360) 评论(0) 推荐(0) 编辑
摘要: 卧槽。。没看清 值 还有负的。。 PS: 注意他说是一个一个插入的,也就是插在完全二叉树的最末位置,然后向上更新。 #includeusing namespace std;typedef long long LL;int a[1010];void BuildMinHeap(int n){ for... 阅读全文
posted @ 2017-03-13 00:44 see_you_later 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 简单插入排序: 简单插入排序的核心思想: 把一条这么个难看的序列默认分为两个排好序的和未排好序的两个部分; 所以一开始排好序的只有一个a[0](好看的只有一个),难看的有N(数组长度)-1个a[1,n-1]; 然后呢,你就要顺序下来,把一个个难看的几个人插到好看的那一堆里去,好看的越来越多,难看... 阅读全文
posted @ 2017-03-12 16:55 see_you_later 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 二级最短路+二级最短路,就是DP过程吧。 代码稍微注释一些,毕竟贴代码不好。。 #includeusing namespace std;typedef long long LL;const int INF=0x3f3f3f3f;const int N=4e4+10;struct asd{ int... 阅读全文
posted @ 2017-03-11 11:13 see_you_later 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 题意: 给定一个长为n的字符串(包含小写字母和’.’),有m次操作 每次操作可以修改字符,并询问修改后有多少对相邻的’.’ 思路: 标记。 #includeusing namespace std;typedef long long LL;const int N=3e5+10;bool vis[N... 阅读全文
posted @ 2017-03-10 17:59 see_you_later 阅读(231) 评论(0) 推荐(0) 编辑
摘要: hzwer's blog 音乐会的等待【单调栈】 铁轨+卡片游戏【栈+队列】 Codeforces570C【标记】 阅读全文
posted @ 2017-03-10 17:58 see_you_later 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 1280: 铁轨 时间限制: 1 Sec 内存限制: 128 MB 提交: 118 解决: 59 [提交][状态][讨论版] 题目描述 某城市有一个火车站,铁轨铺设如图所示。有n节车厢从A方向驶入车站,按进站顺序编号为1~n。你的任务是让它们按照某种特定的顺序进入B方向的铁轨并驶... 阅读全文
posted @ 2017-03-10 16:53 see_you_later 阅读(274) 评论(0) 推荐(0) 编辑