又是一年云参营。

所以一起刷省选题吧。

LOJ2028 「SHOI2016」随机序列

题目链接

简要社论

发现+和-可以互相抵消,于是有贡献的时候一段前缀的乘积。设\(s[i]=\prod_{j=1}^i a[j]\),则答案为\(2\sum_{i=1}^{n-1}3^{n-i}s[i]+s[n]\)。
使用线段树维护前缀积就可以了。code

LOJ2038 「SHOI2015」超能粒子炮・改

题目链接

简要社论

\[
\begin{aligned}
F(n,k)&=\sum_{i=0}^k\binom{n}{i} \\
&=\sum_{i=0}^k\binom{n \ \mathrm{mod} \ p}{i \ \mathrm{mod} \ p}\binom{n/p}{i/p} \\
&=\sum_{i=0}^p\binom{n \ \mathrm{mod} \ p}{i}\sum_{j=0}^{\lfloor\frac{k-i}{p}\rfloor}\binom{n/p}{j}
\end{aligned}
\]
差不多转成一个递归的柿子了。预处理\(F(n,k)(n,k\in [0,p))\),时间复杂度\(O(n^2+T\log n)\).code

LOJ2143 「SHOI2017」组合数问题

题目链接

简要社论

组合意义,转为在\(n\)个元素中选\(\mathrm{mod} k=r\)个元素。
矩阵乘法优化转移,时间复杂度\(O(k^3\log n)\),code

LOJ2146 「SHOI2017」寿司餐厅

题目链接

简要社论

最大权闭合子图的模板。
闭合子图:在一个有向图中的一个子图\(S\),满足\(\forall x\in S\),\(x\)不能到达\(S\)之外的点。
最大权闭合子图:字面意思(点带权)
具体到这题就是,我们发现实际上这些元素是一些互相依赖的关系(选了\(y\)才能选\(x\)),那么连一条边\(x\rightarrow y\),构成了一个有向图。
标准做法是使用最小割,设一个源点\(S\)和一个汇点\(T\),对于点\(x\),割掉与\(S\)相连的边表示不选这个物品,否则割掉与\(T\)相连的边表示选这个物品。若\(v>0\),则连一条边\((S,x,v)\),否则连一条边\((x,T,-v)\)。
那么我们看边\(x\rightarrow y\),如果不割\((x,y)\),要保证\(S\rightarrow x\rightarrow y\rightarrow T\)这条路径不存在,就是不能不选\(y\)且选\(x\)。所以连边\((x,y,+\infty)\)
直接跑一遍dinic就可以过了。code

LOJ2192 「SHOI2014」概率充电器

题目链接

简要社论

首先大家都知道是树d,设\(f[x]\)表示\(x\)没有通上电的概率,但是我们不能列出一个高斯消元的式子,不然复杂度就炸掉了。
正解是使用up down的方法,首先计算出\(g[x]\)表示只考虑\(x\)的子树,\(x\)通上电的概率,这个直接dfs一遍,并且\(f[rt]=g[rt]\)。之后推下去,计算\(x\)对\(x\)的儿子\(v\)的贡献,发现\(f_x\)对\(f_v\)就是\(f_x\)去掉\(g_v\)对它的贡献(这里比较绕,建议画图理解)
注意除0的问题,时间复杂度\(O(n)\),code

LOJ6044 「雅礼集训 2017 Day8」共

题目链接

简要社论

首先要在\(n-1\)个点中选出\(k-1\)个点作为奇数的点。
于是就变为了有标号完全二分图\(K_{n,m}\)有多少个生成树。
你可以手推行列式,也可以使用prufer序列来理解。
首先prufer序列的长度为\(n+m-2\),回想一下prufer序列和树互相转化的过程,就知道里面有\(m-1\)个位置填\([1,n]\)的数,有\(n-1\)个位置填\([1,m]\)的数,并且位置是已经固定的。
所以答案就是\(\binom{n-1}{k-1}\times k^{n-k-1}\times (n-k)^{k-1}\)。
代码?雾。。。

LOJ6045 「雅礼集训 2017 Day8」价

题目链接

简要社论

我回想起刚才好像做过一道题叫寿司餐厅,于是开始思考怎么用网络流建图。。。
然后我自闭了。。。日常不会网络流建图。。。
点开了题解,题解说只用连这些边就可以。\((S,i,\infty-w_i),(i,j+n,\infty),(j+n,T,\infty)\),然后用\(S\)连出的所有边的边权之和-最小割就可以了。其中\(i\)表示减肥药,\(i+n\)是药材。
为什么呢?跟刚才一样,割掉\((S,i)\)表示不选第\(i\)个减肥药。首先割掉中间的边没有割掉右边的边优。其次,所有边权都是\(\infty\)级别的,而且求的是最小割,所以割掉\(n\)条边,也就是不选的减肥药+选的药材=n,所以就是选的减肥药=选的药材。满足这两个条件,跑出来的就是正确答案了。
代码?咕了。。。

LOJ6046 「雅礼集训 2017 Day8」爷

题目链接

简要社论

你发现如果没有\(len\le 10\)这个限制的话,这是个open题。于是只能从这里入手。
暴力分块的话,外层二分,块内二分要两个log,比\(n^2\)还慢。
所以考虑去掉一个,不容易发现相邻几个数都是比较接近的,所以我们可以重新分块。build的时候从左往右扫,当发现\(max-min>S\)的时候就分出一个块,其中\(S\)是个常数,大约取2000,然后就可以对每一块维护\(\le i\)的数的个数(因为\(i\in [min,max]\)的值域较小)。
大概1000次修改重构一次整个序列。这样就可以过去了。
代码?咕了。。。

LOJ2036 「SHOI2015」自动刷题机

题目链接

简要社论

QNMD 省选题(逃

LOJ2037 「SHOI2015」脑洞治疗仪

题目链接

简要社论

线段树维护当前区间最大脑洞,和\(1\)的个数,修改就直接打标记。
QNMD 省选题(逃

Loj刷题记录的更多相关文章

  1. AC 自动机刷题记录

    目录 简介 第一题 第二题 第三题 第四题 第五题 第六题 简介 这就是用来记录我对于<信息学奥赛一本通 · 提高篇>一书中的习题的刷题记录以及学习笔记. 一般分专题来写(全部写一起可能要 ...

  2. PE刷题记录

    PE刷题记录 PE60 / 20%dif 这道题比较坑爹. 所有可以相连的素数可以构成一张图,建出这张图,在其中找它的大小为5的团.注意上界的估算,大概在1W以内.1W内有1229个素数,处理出这些素 ...

  3. leetcode刷题记录--js

    leetcode刷题记录 两数之和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但 ...

  4. Leetcode刷题记录(python3)

    Leetcode刷题记录(python3) 顺序刷题 1~5 ---1.两数之和 ---2.两数相加 ---3. 无重复字符的最长子串 ---4.寻找两个有序数组的中位数 ---5.最长回文子串 6- ...

  5. 刷题记录:[HarekazeCTF2019]encode_and_encode

    目录 刷题记录:[HarekazeCTF2019]encode_and_encode 一.知识点 JSON转义字符绕过 php伪协议 刷题记录:[HarekazeCTF2019]encode_and_ ...

  6. 刷题记录:[De1CTF 2019]Giftbox && Comment

    目录 刷题记录:[De1CTF 2019]Giftbox && Comment 一.知识点 1.sql注入 && totp 2.RCE 3.源码泄露 4.敏感文件读取 ...

  7. 刷题记录:[强网杯 2019]Upload

    目录 刷题记录:[强网杯 2019]Upload 一.知识点 1.源码泄露 2.php反序列化 刷题记录:[强网杯 2019]Upload 题目复现链接:https://buuoj.cn/challe ...

  8. 刷题记录:[XNUCA2019Qualifier]EasyPHP

    目录 刷题记录:[XNUCA2019Qualifier]EasyPHP 解法一 1.error_log结合log_errors自定义错误日志 2.include_path设置包含路径 3.php_va ...

  9. 刷题记录:[DDCTF 2019]homebrew event loop

    目录 刷题记录:[DDCTF 2019]homebrew event loop 知识点 1.逻辑漏洞 2.flask session解密 总结 刷题记录:[DDCTF 2019]homebrew ev ...

随机推荐

  1. 论文笔记 : NCF( Neural Collaborative Filtering)

    ABSTRACT 主要点为用MLP来替换传统CF算法中的内积操作来表示用户和物品之间的交互关系. INTRODUCTION NeuCF设计了一个基于神经网络结构的CF模型.文章使用的数据为隐式数据,想 ...

  2. C# vb .net实现移除像素特效滤镜

    在.net中,如何简单快捷地实现Photoshop滤镜组中的移除像素特效呢?答案是调用SharpImage!专业图像特效滤镜和合成类库.下面开始演示关键代码,您也可以在文末下载全部源码: 设置授权 第 ...

  3. python预习day1

    计算机基础 cpu 大脑 内存 临时记忆 硬盘 永久记忆 输入设备 眼睛 耳朵 输出设备 嘴巴 操作系统 控制计算机硬件工作流程的 应用程序 安装在操作系统之上的软件 python简介 python是 ...

  4. Java自学-数组 创建数组

    Java 如何创建一个数组 数组是一个固定长度的,包含了相同类型数据的 容器 步骤 1 : 声明数组 int[] a; 声明了一个数组变量. []表示该变量是一个数组 int 表示数组里的每一个元素都 ...

  5. Java自学-控制流程 switch

    Java的 switch 语句 switch 语句相当于 if else 的另一种表达方式 示例 1 : switch switch可以使用byte,short,int,char,String,enu ...

  6. 面试官再问Redis分布式锁如何续期?这篇文章甩 他一脸

    一.真实案例 二.Redis分布式锁的正确姿势 据肥朝了解,很多同学在用分布式锁时,都是直接百度搜索找一个Redis分布式锁工具类就直接用了.关键是该工具类中还充斥着很多System.out.prin ...

  7. 设置断点调式 fiddler

    1. 用IE 打开博客园的登录界面  http://passport.cnblogs.com/login.aspx 2. 打开Fiddler,  在命令行中输入bpu http://passport. ...

  8. js utc转当地时间

    javascript utc转当地时间 后台传过来的时间:2019-07-03T01:39:51.691242+08:00 转成当地时间:2019-07-02 17:39:51 new Date(20 ...

  9. 继 首次使用DoNetCore EFCore DbFirst 更新数据实体

    //EFCore DB First 步骤 //第一步:Install-Package Microsoft.EntityFrameworkCore.SqlServer -version 2.1.1 // ...

  10. scrapy 写文件进行debug调试

    首先进入和setting同级目录 新建run.py文件 # *_*coding:utf-8 *_* from scrapy import cmdline cmdline.execute('scrapy ...