[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的更多相关文章

  1. OSC Source Code Innovation Salon(2018.10.20)

    时间:2018.10.20地点:北京 朝阳 浦项中心B座2层

  2. 2018.10.20 2018-2019 ICPC,NEERC,Southern Subregional Contest(Online Mirror, ACM-ICPC Rules)

    i207M的“怕不是一个小时就要弃疗的flag”并没有生效,这次居然写到了最后,好评=.= 然而可能是退役前和i207M的最后一场比赛了TAT 不过打得真的好爽啊QAQ 最终结果: 看见那几个罚时没, ...

  3. 【2018.10.20】CXM笔记(思维)

    1. 给你个环状字符串,问从哪个地方拆开能使它的字典序最小. 先预处理任意子串的哈希值. 然后枚举拆点,将它与当前最优的拆点比较谁更优(就是从哪拆的字典序更小),具体方法是二分+哈希找出两串最长的相同 ...

  4. 2018.10.20 XMYZ Day1总结

    上周的忘写了……题目没有作者…… T1.backpack 期望得分100,实际得分100. 感觉我自己真是不如以前了……以前做这种题都是秒掉的,现在怎么想了10分钟啊…… 因为物品的体积和价值都非常小 ...

  5. 2018.10.20 bzoj2748: [HAOI2012]音量调节(背包)

    传送门 这题是不是太sbsbsb了一点. 难度直逼普及-. 直接背包判存在性就行了. 代码: #include<bits/stdc++.h> using namespace std; bo ...

  6. 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个数结 ...

  7. 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个可 ...

  8. 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]有/无重复的机会时压缩的最小值. 那么可以从三种情况转移过来 ...

  9. 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][ ...

随机推荐

  1. hdu1176免费馅饼(动态规划,数塔)

    免费馅饼 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

  2. Resharp使用简记

    一图流: 拾贝: .字符串引号中直接回车键自动添加连接字符串 Ctrl+B:转到定义 Ctr+F11:展示类结构 Ctr+Alt+j:包围代码块 Ctr+\:注释和取消注释 Alt+Ins:重构 Ct ...

  3. [Clr via C#读书笔记]Cp15枚举和位标识

    Cp15枚举和位标识 枚举类型 本质是结构,符号名称-值:好处显而易见:System.Enum;值类型: 编译的时候,符号会转换为常量字段: 枚举支持很多方法和成员: 位标识bit flag 判断和设 ...

  4. 使用Docker部署java web项目

    在国内可能会有源下载失败问题,docker安装失败, 这里提供docker离线安装包如有需要可以进行下载 docker离线安装包下载 ##本文环境使用centos 7 进行部署. #1安装docker ...

  5. 352[LeetCode] Data Stream as Disjoint Intervals

    Given a data stream input of non-negative integers a1, a2, ..., an, ..., summarize the numbers seen ...

  6. LeetCode 700——二叉搜索树中的搜索

    1. 题目 2. 解答 如果根节点为空,直接返回 NULL.如果根节点非空,从根节点开始循环查找,直到节点为空. 如果待查找的值大于当前节点值,节点指向右孩子: 如果待查找的值小于当前节点值,节点指向 ...

  7. linux下的常用技巧。

    xargs  linux下的多行合并~ [root@]# yum list installed|grep php|awk -F ' ' '{print $1}' php-channel-nrk.noa ...

  8. 软件测试基础-Homework1

    The error was in my graduate work which was about game development.I broadcast some messages to the ...

  9. HTTP 请求头 & 响应头

    HTTP请求头概述 HTTP客户程序(例如浏览器),向服务器发送请求的时候必须指明请求类型(一般是GET或者POST).如有必要,客户程序还可以选择发送其他的请求头.大多数请求头并不是必需的, 但Co ...

  10. 展示github中的页面(Github Pages)

    一.创建一个仓库,名为"user_name.github.io"(此处user_name替换为你自己的github用户名),并在根目录下创建index.html,则该仓库下的所有h ...