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][ ...
随机推荐
- TW实习日记:第28天
同前两天一样,等接口,开发,调试接口.重复地做着低级代码得搬运工作,确实挺没意思的.怪不得有些人一直说写低级代码很无聊,没有创造性和成就感.31号准备溜了,还是好好复习准备秋招吧. 挖坑清单: Vue ...
- 【swiper】 滑块组件说明
swiper 滑块视图容器,其原型如下: <swiper indicator-dots="[Boolean]" indicator-color="[Color]&q ...
- 解析Java中final关键字的各种用法
首先,我们可以从字面上理解一下final这个英文单词的中文含义:“最后的,最终的; 决定性的; 不可更改的:”.显然,final关键词如果用中文来解释,“不可更改的”更为合适.当你在编写程序,可能会遇 ...
- 孤荷凌寒自学python第八十五天配置selenium并进行模拟浏览器操作1
孤荷凌寒自学python第八十五天配置selenium并进行模拟浏览器操作1 (完整学习过程屏幕记录视频地址在文末) 要模拟进行浏览器操作,只用requests是不行的,因此今天了解到有专门的解决方案 ...
- RNN概述-深度学习 -神经网络
一 RNN概述 前面我们叙述了BP算法, CNN算法, 那么为什么还会有RNN呢?? 什么是RNN, 它到底有什么不同之处? RNN的主要应用领域有哪些呢?这些都是要讨论的问题. 1) BP算法 ...
- 线性代数之——A 的 LU 分解
1. A = LU 之前在消元的过程中,我们看到可以将矩阵 \(A\) 变成一个上三角矩阵 \(U\),\(U\) 的对角线上就是主元.下面我们将这个过程反过来,通一个下三角矩阵 \(L\) 我们可以 ...
- Redhat linux 安装SVN服务器 CollabNetSubversionEdge
请仔细阅读安装包自带的readme文件! ================================================= 1. 先去官网,找安装包: http://subversi ...
- Java内存管理特点
Java内存管理特点 Java一个最大的优点就是取消了指针,由垃圾收集器来自动管理内存的回收.程序员不需要通过调用函数来释放内存. 1.Java的内存管理就是对象的分配和释放问题. 在 ...
- str和repr
在Python2.6和Python3.0以及更早的版本中,在交互式模式下的输出本质上是使用repr,因此对于一些浮点数运算,会显示很多位: 4 / 5.0 #0.8000000000000004 但是 ...
- Rightmost Digit(最后一位数字)
Description Given a positive integer N, you should output the most right digit of N^N. Input The ...