[题解]Killer Names(\(O(n\log n)\)做法) HDU - 6143 感觉好久没做过这种直来直去的组合题,过来水一篇题解.还以为要写一个\(MTT\)或者三模数\(NTT\),想了想HDU这种老年机子还是算了,最后发现\(O(n^2)\)就行了 题意翻译过后就是要求一个式子: \[ \sum_{i+j\le m}{m\choose i}{m-i\choose j}{n\brace i}{n\brace j}i!j! \] 钦定两边分别出现\(i,j({m\choose i}…
Killer Names Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 342    Accepted Submission(s): 178 Problem Description > Galen Marek, codenamed Starkiller, was a male Human apprentice of the Sith L…
文章目录 题意 思路 连续子数组的和sum[i,j] 源码 结果记录 题意 给定一个数组,求连续的子数组的和为k的子数组个数. 思路 连续子数组的和sum[i,j] sum[i,j]=∑k=ijAk(i<j)sum[i,j]=\sum_{k=i}^jA_k(i<j)sum[i,j]=∑k=ij​Ak​(i<j) 即数组第i个数到第j个数的子数组的和. sum[i,j]=sum[j]−sum[i−1]sum[i,j]=sum[j]-sum[i-1]sum[i,j]=sum[j]−sum[i…
这是一种题解没有的 \(O(m\log n)\) 做法. 首先第一步转化.设这是第 \(x\) 个任务,若 \(opt\) 为 \(1\),危险值大于 \(c\) 的只有可能在第 \(x-c-1\) 个任务以前出现. 于是题目就变成了在某一时刻单点加和在某一时刻链上查询,离线即可去掉"某一时刻". 单点加和链上查询,大家用的应该都是树剖,复杂度是 \(O(\log^2n)\) 的.然而使用 DFS 序和差分,将单点加转化为子树加,将链上查询转化为单点查询. 具体来说就是设一个 \(s[…
day0 第一件事当然是去酒店入住+领一堆东西. 感觉酒店不错,而且离学校挺近的,走路10分钟不到,骑车5分钟就到了. 然后去学校吃饭.我们在教工饭堂吃饭,饭菜还不错,但是没有筷子差评. 吃完饭后找了一下附近的咖啡厅,然而并没有找到. 剩下的时间都在玩手机. day1 有半个小时试机时间,就敲了三个板子(NTT,SA,LCT),结果一个都没用到. 开场先看A,发现是个傻逼题,10分钟切掉. 然后看B,想了一会感觉不会做,就跳过了. 接着发现C是傻逼题,一个小时写完+拍完. D也想了一会想不出来,…
这套题实在是太神仙了..做了我好久...好多题都是去搜题解才会的 TAT. 剩的那道题先咕着,如果省选没有退役就来填吧. 「SDOI2017」龙与地下城 题意 丢 \(Y\) 次骰子,骰子有 \(X\) 面,每一面的概率均等,取值为 \([0, X)\) ,问最后取值在 \([a, b]\) 之间的概率. 一个浮点数,绝对误差不超过 \(0.013579\) 为正确. 数据范围 每组数据有 \(10\) 次询问. \(100\%\) 的数据,\(T \leq 10\),\(2 \leq X \l…
「HAOI2015」树上染色 题意 有一棵点数为 \(N\) 的树,树边有边权.给你一个在 \(0 \sim N\) 之内的正整数 \(K\),你要在这棵树中选择 \(K\) 个点,将其染成黑色,并将其他的 \(N-K\) 个点染成白色.将所有点染色后,你会获得黑点两两之间的距离加上白点两两之间距离的和的收益. 问收益最大值是多少. \(N \leq 2000, \ 0 \leq K \leq N\) 题解 树上距离,我们要么考虑差分深度,要么考虑一条边对于多少个点对进行贡献. 前者显然是不好考…
来自FallDream的博客,未经允许,请勿转载,谢谢. 为了证明一下我又来更新了,写一篇简要的题解吧. 这场比赛好像有点神奇,E题莫名是道原题,导致有很多选手直接过掉了(Claris 表演24s过题).然而D题比E题要难一些,分还少. A. Finite or not? 先把\(\frac{p}{q}\)约成最简分数,然后就是要判断是否\(q\)的所有质因数都是\(b\)的质因数. 每次取\(g=gcd(b,q)\),并尽可能的让\(q\)除\(g\),最后判断\(q\)是否是1即可. 还有一…
由于太懒了,好久没更新了.发个题解好了. shoes 首先不难证明鞋子配对一定是从前往后将同一种的左和右配对. 配好对之后首先我们可以假设左在右的左边,然后讨论可知将左边靠前的排在前面更优. rect 先考虑只有行限制的情况,那么我们考虑从小到大插入,那么每次极大的区间就是符合题意的,这样就可以扣出O(n)个区间. 同时我们可以考虑矩形左上角,对于每个左上角考虑每个行区间的延伸长度,每个列区间的延伸长度,合并的时候是一个扫描线. 此外本题也有不带log的做法,留作习题. split 假设a<=b…
话说我怎么觉得我没咕多长时间啊,怎么就又落了20多场题解啊 T1 array: 根据题意不难列出二元一次方程,于是可以用exgcd求解,然而还有一个限制条件就是$abs(x)+abs(y)$最小,这好像很难搞,但是我们用exgcd求出一组特解之后的通解公式是个一次函数,通过手玩可知x,y只可能是最小正整数或最大负整数解,这就很好整,时间复杂度$O(n)$,当然也可以三分. #include<bits/stdc++.h> #define int long long using namespace…
从今天开始,联赛之前大约要完成前 \(20\) 套 \(\rm AGC\),希望不要鸽. A 略 B 感觉这题比 \(\rm C\) 题难. 考虑对于每个时刻维护每个位置是否可能出现红球,那么一个时刻一条边只会影响到两个位置. 那么一路维护过来即可,复杂度 \(\mathcal{O}(n)\). C 显然最终一定会存在一个时刻使得有一对相邻点 \((i, i + 1)\) 所在的绳子上只存在 \((i, i + 1)\) 之间这一条边. 那么原问题存在一组解的必要条件就是 \(\max\limi…
Preface 联赛结束后趁着自己还没有一下子把题目忘光,所以趁机改一下题目. 没有和游记一起写主要是怕篇幅太长不美观. 因此这里我们直接讲题目,关于NOIP2018的一些心得和有趣的事详见:NOIP2018游记 铺设道路 SB到我怀疑人生,难度比小凯的疑惑还低了不知道几个数量级那题我貌似不是很会证. 考场上为了对拍首先写了个暴力分裂区间的贪心,然后一发过了大样例??? 想往数据结构上想,但是考虑这是Day1T1,所以肯定有玄学做法. 积木大赛的原题我是做过的,但是考场上忘了,所以YY了一个循环…
转自:http://www.cnblogs.com/hoys/archive/2011/09/30/2196199.html http://armboard.taobao.com/ Android提供了用户级轻量的LOG机制,它的实现贯穿了Java,JNI,本地c/c++实现以及LINUX内核驱动等Android的各个层次,而且足够简单清晰,是一个相当不错的解读案例.本系列文章针对LOG机制的内部实现机理进行解读,本文是系列的第一篇,解读LOG机制的实现架构. (1)LOG的实现架构 LOG的运…
题目链接 题意:给你一个n*m的网格图,初始时格点全白,每次可以将一段连续的格点涂黑.求出每次操作之后白色连通块的数量. 看了看网上的题解,基本全是离线的做法.其实这道题是有在线的做法的,利用了对偶图的性质,适用于任意平面图(大概是). (ps:本题思路是我受thu叉院神犇wzf在wannafly冬令营上提到的对偶图思想的启发而想出来的,先膜为敬~~) 我们可以反过来考虑黑格的连通性.假如我们在涂黑某个格点的时候,把两个分离的黑格“连了起来”,这时有两种可能的情况: 1.两黑格在同一连通分量.此…
%拜!颜神怒A此题,像我这样的渣渣只能看看题解度日╭(╯^╰)╮在这里把两种做法都记录一下吧~ 题解做法:可以考虑单独的一只鸡 u 能否存活.首先我们将 u 加入到集合S.然后我们按照时间倒序往回推,如果在时间 t 的时候发现有 u 和 v 同时被抉择,为了保证 u 的存活我们只能杀掉 v,也就是说在 t - 1的时刻 v 必须存活.这时我们将 v 加入到集合 S 中,再继续进行这个过程.如果在某个时刻我们发现 u 和 v 同时被抉择,可 u 和 v 都已经在集合中出现过了(要求在这个时刻一并存…
题目传送门 http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1237 数学题真是做的又爽又痛苦,爽在于只要推出来公式基本上就是AC,痛苦就在于推公式... 题意很简单,求 $\Large\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{n}gcd(i,j)$ 其中$n\le 10^{10}$ 这个题有很多做法,除了普及组的$O(n^2\log n)$做法,还有用莫比乌斯反演+分块优化的$O(…
虚拟化构建二分图 ------BZOJ2080 题解+浅谈几道双栈排序思想的题 本题的题解在最下面↓↓↓ 不得不说,第一次接触类似于双栈排序的这种题,是在BZOJ的五月月赛上. [BZOJ4881][Lydsy2017年5月月赛]线段游戏 传送门 简洁的题面:给你一个1到n(n<=100000)的排列,问你能否将这个排列分成两个升序的子序列,如果能,求方案数.(本人强行将问题拆成两个子任务,原因你一会就会知道~) P.S.:比赛时除太空猫外唯一想出来的题,其实我已经写过一篇题解了,不过当时比赛还…
Problem A. Neverending competitions 题目大意 一个团队有多个比赛,每次去比赛都会先订机票去比赛地点,然后再订机票返回.给出\(n\)个含有起止地点的购票记录(不按时间顺序),判断这个团队是否返回. 题解 竞速题 因为每次比赛都必定是一去一返 所以当订票记录个数为偶数的时候一定在家中,否则一定在比赛. Code a = input() if a % 2 == 0: print 'home' else: print 'contest' Problem B. Cod…
00 – Undo Log Undo Log 是为了实现事务的原子性,在MySQL数据库InnoDB存储引擎中,还用Undo Log来实现多版本并发控制(简称:MVCC). - 事务的原子性(Atomicity)   事务中的所有操作,要么全部完成,要么不做任何操作,不能只做部分操作.如果在执行的过程中发生   了错误,要回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过. - 原理   Undo Log的原理很简单,为了满足事务的原子性,在操作任何数据之前,首先将数据备份到…
题意 传送门 手写堆大法好啊,题解貌似没有结构体堆的做法,思路有些像配对堆,关于配对堆请自行百度,因为本蒟蒻不会.. 以下是蒟蒻的做法:建立一个大根堆a维护最大价值里面存入它的编号以及价值.听说配对堆可以不用定义结构体,但我不会呀!l表示这个位置左边的编号,r同理.一个数组book标记是否可以选择,每次选完之后左右两边进行标记,堆中加入左右之和减去本身的值再将其放入原来的位置,即可达到后悔操作,更新左右编号,然后取m次即可. #include<bits/stdc++.h> using name…
从这里开始 又考炸了,sad.....明年应该在准备高考了,考完把坑填了好了. 一半题都被卡常,qswl.[我汤姆要报警.jpg] dfs 怎么这么慢呀,sad..... i7 牛逼! 写的比较混乱,可以将就着看就看吧. Day 1 Problem A 考虑求出最高位是 1 还是 0,可以推出剩下的 $n - 1$ 位二进制数在 $n - 1$ 格雷码的排名. #include <bits/stdc++.h> using namespace std; typedef bool boolean;…
原题传送门 题意:给你k个点,让你求两两最短路之间的最小值 我们考虑二进制拆分,使得每两个点都有机会分在不同的组\((A:0,B:1)\)中,从源点\(S\)向\(A/B\)中的点连边权为0的边,从\(B/A\)中的点向汇点\(T\)连边权为0的边,这时\(S->T\)的最短路就是\(A/B\)中的点到\(B/A\)中的点最短路的最小值 所以做最短路次数为\(2\log k\),总复杂度为\(T n \log n\log k\)(srf好像还有少一个log的做法,orz srf) #includ…
我好菜啊 A 题意: 定义p-二进制数为2^k-p,给出n和p,求用最小个数的p-二进制数来表示n 1<=n<=10^9,-1000<=p<=1000 题解: 猜结论,答案不会很大 n可以表示成kp+s的形式,枚举k,判断(n-kp)是否能用k个2的幂构成 画一下图可以发现,如果可以构成,那么满足(n-kp)的位数<=k<=n-kp (相当于把一颗二叉树上一个点变成两个) 证明答案不会很大: 首先(n-kp)的位数最多为30 ①p>=0 显然当k超过30后,如果不…
目录 牛客NOIP暑期七天营-提高组1 A-最短路 题目描述 link 题解 代码 B-最小生成链 题目描述 link 题解 代码 C-最小字典最短路 题目描述 link 题解 Update 牛客NOIP暑期七天营-提高组1 比赛链接 官方题解 A-最短路 题目描述 link 题解 有Special Judge,只要构造一下就好了.一种较简单的构造想法:将每个点按照它离源点的距离排序,你可以想象是一条类似链的东西,但是,又不一定是链,当存在大于等于2个的点离1的距离相同,就会形成分叉.其实就是将…
LINK:CF R 654 div2 前言:F题是一个线段树分类讨论的题目 比赛的时候没看 赛后感觉没什么意思 所以咕掉了. 记事:第一次笼统的写一场比赛的题目 可能是我这场比赛打的太差了 题目不难 赛后轻而易举的解决 赛时可能是状态的问题吧. A.Magical Sticks 容易发现不论奇偶构成的数字最优解一定为n 然后偶数答案显然为n/2 奇数可以多构成一对 n/2+1. code //#include<bits\stdc++.h> #include<iostream> #i…
//2089之前忘做了,周二C语言课上做,至于2086,写题解的时候突然发现之前的做法是错的,新的解法交上去CE,等周二再弄吧,其余题目暂时可以放心 HDU2080 夹角有多大II 题目链接 Problem Description 这次xhd面临的问题是这样的:在一个平面内有两个点,求两个点分别和原点的连线的夹角的大小. 注:夹角的范围[0,180],两个点不会在圆心出现. Input 输入数据的第一行是一个数据T,表示有T组数据. 每组数据有四个实数x1,y1,x2,y2分别表示两个点的坐标,…
新的 \(O(k+\log n)\) 做法. 考虑计算每个猴子对答案的贡献. 打个表: 1 1 2 4 8 16 32 ... 可以看出第 $ i $ 个猴子对答案的贡献是 \(i^k \times 2^{n-i-1}\),特别地,最后一只猴子对答案的贡献是 \(n^k\). 写成柿子: \[n^k+\sum_{i=1}^{n-1}i^k \times 2^{n-i-1} \] \[n^k+2^{n-1} \times (\sum_{i=1}^{n-1}i^k \times (2^{-1})^i…
洛谷题目传送门 \(O(n)\)的正解算法对我这个小蒟蒻真的还有点思维难度.洛谷题解里都讲得很好. 考试的时候一看到300000就直接去想各种带log的做法了,反正不怕T...... 我永远只会有最直观的思路(最差的程序效率) 题目相当于每次让我们找区间\([1,las-1]\)中上数第一个比当前盘子半径小的位置(las为上一次盘子掉到的位置)于是用线段树无脑搞一下,维护区间最小值,每次找这个位置,能往左跳就往左,不能的话再往右,当然如果超过了las-1就不用找了,直接放在las上面(相当于la…
来自FallDream的博客,未经允许,请勿转载,谢谢. 小N最近在研究NP完全问题,小O看小N研究得热火朝天,便给他出了一道这样的题目: 有 n 个球,用整数 1 到 n 编号.还有 m 个筐子,用整数1到m编号. 每个球只能放进特定的两个筐子之一,第 i 个球可以放进的筐子记为 Ai 和 Bi . 每个球都必须放进一个筐子中. 如果一个筐子内有奇数个球,那么我们称这样的筐子为半空的. 求半空的筐子最少有多少个. 小N看到题目后瞬间没了思路,站在旁边看热闹的小I嘿嘿一笑:"水题!"…
Preface 菜鸡HL终于狗来了他的省选停课,这次的时间很长,暂定停到一试结束,不过有机会二试的话还是可以搞到4月了 这段时间的学习就变得量大而且杂了,一般以刷薄弱的知识点和补一些新的奇怪技巧为主. 偶尔也会打一些比赛找找手感(比如HHHOJ的比赛,Luogu比赛,以及comet OJ上之前的CCPC题) CF和CC看情况,主要是我真的不太喜欢读英文题的恐怖感觉233 希望这段时间的努力可以让我不跪省选吧 2-26 早上晨跑完了就和杨浩讲了停课的事,不出意外地很轻松就通过了. 然后回班拿了点东…