POI 2018.10.20
[POI2005]BANK-Cash Dispenser
有多少个4位字符串是所有操作序列的子串。
10^4枚举字符串。暴力判断会TLE
发现,我们就是在每个操作序列中不断找第一个出现的c字符。
预处理每个位置p的下一个c字符在哪里。nxt[N][10000][10]
然后O(N*4)判断。
[POI2012]SQU-Squarks
设有n个互不相同的正整数{X1,X2,…Xn},任取两个Xi,Xj(i≠j),能算出Xi+Xj。现在所有取法共n*(n-1)/2个和,要你求出X1,X2,…Xn。
3<=n<=300, 每个正整数不超过10^8
考试题。
这种没有任何东西的题,一定要枚举固定一些的。
为了方便比较大小,对和排序。然后对X从小到大考虑。
发现,一些和是确定的。a1+a2=b1,a1+a3=b2,然后就不能确定a1+a4和a2+a3哪个大。
枚举a2+a3=bx,然后知道了a1,a2,a3删除b1,b2,bx,剩下最小的是a1+a4,求出a4,然后删掉a1,a2,a3 +a4。
以此类推。
不合法:不存在这个和、数字有重复、不是正整数。大概是O(n^3logn)但是可能找几次就挂了,到不了上界。
突破口:枚举固定一些东西。
[POI2015]PIE
记录印章的x点进行匹配。纸上每个x点最多访问两次。.点不会印下去,只会访问一次。复杂度可以保证。
根据题意模拟即可。
[POI2008]PER-Permutation
现在给你一个元素个数为n的多重集的一个排列和m,求这个排列的排名取模m。
多重集合排列的康拓展开。
m不一定是质数。
从左往右扫位置的贡献。
对于一个位置i,一个比s[i]小的还没有被固定的x,贡献是:(n-i)!/(a1!*...an!)*ax
a1..an表示,第j个数,固定i前面的位置之后,在i~n中出现的次数。
理解乘的那个ax就是把ax!消去一个。
然后对这些做和,乘法分配律,发现第i位的贡献,就是(n-i)!/(a1!*...an!)*(比s[i]小的数的出现次数和)
(比s[i]小的数的出现次数和)可以用树状数组维护。
然后每固定一个数,就可以把这个数的出现次数ai-1。
但是m不一定是质数。m=p1^q1*p2^q2*.....pk^qk
可以对每个pk,维护(n-i)!/(a1!*...an!)的值(除去所有的质数p),以及分母中p的次数。
当移动位置i的时候,可以把aj--,对应每个pk中,只要提前预处理(1~300000)对于每个k,=bi*pk^li(bi是除去pk之后),记录bi,bi的逆元,pk的次数li
然后,aj--,对应分子乘一个aj,把pk次数消一消然后把baj乘上去。
n-i变成n-i-1,把n-i的逆元乘上去,把pk次数消一消。
每次用中国剩余定理合并即可。
复杂度:O(nlnm+nlogn)不包括预处理复杂度
POI 2018.10.20的更多相关文章
- OSC Source Code Innovation Salon(2018.10.20)
时间:2018.10.20地点:北京 朝阳 浦项中心B座2层
- 2018.10.20 2018-2019 ICPC,NEERC,Southern Subregional Contest(Online Mirror, ACM-ICPC Rules)
i207M的“怕不是一个小时就要弃疗的flag”并没有生效,这次居然写到了最后,好评=.= 然而可能是退役前和i207M的最后一场比赛了TAT 不过打得真的好爽啊QAQ 最终结果: 看见那几个罚时没, ...
- 【2018.10.20】CXM笔记(思维)
1. 给你个环状字符串,问从哪个地方拆开能使它的字典序最小. 先预处理任意子串的哈希值. 然后枚举拆点,将它与当前最优的拆点比较谁更优(就是从哪拆的字典序更小),具体方法是二分+哈希找出两串最长的相同 ...
- 2018.10.20 XMYZ Day1总结
上周的忘写了……题目没有作者…… T1.backpack 期望得分100,实际得分100. 感觉我自己真是不如以前了……以前做这种题都是秒掉的,现在怎么想了10分钟啊…… 因为物品的体积和价值都非常小 ...
- 2018.10.20 bzoj2748: [HAOI2012]音量调节(背包)
传送门 这题是不是太sbsbsb了一点. 难度直逼普及-. 直接背包判存在性就行了. 代码: #include<bits/stdc++.h> using namespace std; bo ...
- 2018.10.20 bzoj1925: [Sdoi2010]地精部落(dp)
传送门 dp好题. 设f[i][j]f[i][j]f[i][j]表示iii个数结尾是jjj且结尾两个数递增的方案数. 那么显然可以对称的定义出g[i][j]g[i][j]g[i][j]表示iii个数结 ...
- 2018.10.20 bzoj1079: [SCOI2008]着色方案(多维dp)
传送门 dp妙题. f[a][b][c][d][e][last]f[a][b][c][d][e][last]f[a][b][c][d][e][last]表示还剩下aaa个可以用一次的,还剩下bbb个可 ...
- 2018.10.20 bzoj1068: [SCOI2007]压缩(区间dp)
传送门 这题转移很妙啊. f[l][r][1/0]f[l][r][1/0]f[l][r][1/0]表示对于区间[l,r][l,r][l,r]有/无重复的机会时压缩的最小值. 那么可以从三种情况转移过来 ...
- 2018.10.20 loj#2593. 「NOIP2010」乌龟棋(多维dp)
传送门 f[i][j][k][l]f[i][j][k][l]f[i][j][k][l]表示用iii张111,jjj张222,kkk张333,lll张444能凑出的最大贡献. 然后从f[i−1][j][ ...
随机推荐
- hdu1176免费馅饼(动态规划,数塔)
免费馅饼 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submis ...
- Resharp使用简记
一图流: 拾贝: .字符串引号中直接回车键自动添加连接字符串 Ctrl+B:转到定义 Ctr+F11:展示类结构 Ctr+Alt+j:包围代码块 Ctr+\:注释和取消注释 Alt+Ins:重构 Ct ...
- [Clr via C#读书笔记]Cp15枚举和位标识
Cp15枚举和位标识 枚举类型 本质是结构,符号名称-值:好处显而易见:System.Enum;值类型: 编译的时候,符号会转换为常量字段: 枚举支持很多方法和成员: 位标识bit flag 判断和设 ...
- 使用Docker部署java web项目
在国内可能会有源下载失败问题,docker安装失败, 这里提供docker离线安装包如有需要可以进行下载 docker离线安装包下载 ##本文环境使用centos 7 进行部署. #1安装docker ...
- 352[LeetCode] Data Stream as Disjoint Intervals
Given a data stream input of non-negative integers a1, a2, ..., an, ..., summarize the numbers seen ...
- LeetCode 700——二叉搜索树中的搜索
1. 题目 2. 解答 如果根节点为空,直接返回 NULL.如果根节点非空,从根节点开始循环查找,直到节点为空. 如果待查找的值大于当前节点值,节点指向右孩子: 如果待查找的值小于当前节点值,节点指向 ...
- linux下的常用技巧。
xargs linux下的多行合并~ [root@]# yum list installed|grep php|awk -F ' ' '{print $1}' php-channel-nrk.noa ...
- 软件测试基础-Homework1
The error was in my graduate work which was about game development.I broadcast some messages to the ...
- HTTP 请求头 & 响应头
HTTP请求头概述 HTTP客户程序(例如浏览器),向服务器发送请求的时候必须指明请求类型(一般是GET或者POST).如有必要,客户程序还可以选择发送其他的请求头.大多数请求头并不是必需的, 但Co ...
- 展示github中的页面(Github Pages)
一.创建一个仓库,名为"user_name.github.io"(此处user_name替换为你自己的github用户名),并在根目录下创建index.html,则该仓库下的所有h ...