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][ ...
随机推荐
- 180612-Spring之Yml配置文件加载问题
Yml配置文件加载问题 在resource目录下有一个application.yml文件,希望是通过@PropertySource注解,将配置文件数据读取到Environment中,然而调试发现数据始 ...
- Selenium自动化测试第二天(下)
如有任何学习问题,可以添加作者微信:lockingfree 目录 Selenium自动化测试基础 Selenium自动化测试第一天(上) Selenium自动化测试第一天(下) Selenium自动化 ...
- kettle_简单入门
简介 Kettle是一款纯Java开发的ETL工具,它是跨平台的,所以它可以在Window.Linux.Unix上运行.注意什么是ETL,读者可以自行百度了解,我的理解是将一个数据库的数据导入到另外一 ...
- 百度翻译api 实现简易微信翻译小程序
介绍 口袋翻译 口袋翻译 微信小程序 翻译功能 含7类语言的相互翻译 包含最近10条的翻译历史回溯功能 微信搜索:简e翻译 功能展示 使用百度翻译api需要申请 appid 与 key 并在 ap ...
- JavaScript 之 对象/JSON/数组
对象 简单说,所谓对象,就是一种无序的数据集合,由若干个“键值对”(key-value)构成. var obj = { p: 'Hello World' }; 上面代码中,大括号就定义了一个对象,它被 ...
- 机器学习之支持向量机(Support Vector Machine)
转载请注明出处:http://www.cnblogs.com/Peyton-Li/ 支持向量机 支持向量机(support vector machines,SVMs)是一种二类分类模型.它的基本模型是 ...
- 将System.Drawing.Bitmap转换为Direct2D.D2DBitmap
最近在尝试Direct2D编程,挺好玩的. 但是有时候还是会用到GDI+来生成图片,但D2D绘图需要用到自己的D2DBitmap类. 因此需要转换,查阅了下网上的资料,写了这么一个方法: using ...
- OpenCV学习4-----K-Nearest Neighbors(KNN)demo
最近用到KNN方法,学习一下OpenCV给出的demo. demo大意是随机生成两团二维空间中的点,然后在500*500的二维空间平面上,计算每一个点属于哪一个类,然后用红色和绿色显示出来每一个点 如 ...
- 自测之Lesson8:进程操作
题目:请解释wait是如何同步父子进程的. 程序代码: #include <stdio.h> #include <unistd.h> #include <sys/type ...
- "Hello world!"团队第八次会议
Scrum会议 今天是我们"Hello world!"团队第八次召开会议,博客内容是: 1.会议时间 2.会议成员 3.会议地点 4.会议内容 5.todo list 6.会议照片 ...