- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 电子神技大学 王晔涛 卿俊 PPT下载地址 题目AC代码 /s/1mieXeuk /s/1slf2R3f DZY Loves Sorting 给你1到n的排列,你有两个操作。 1.L,R 将[L,R]里面的数按照升序排序 2.L,R 将[L,R]里面的数按照降序排序 操作完后,给一个k 问你a[k]是多少。 1≤n≤200,000 1≤Q≤200,000) 我们二分答案,假设当前是mid,然后把大于mid的数字标为1,不大于mid的数字标为0。然后对所有操作做完以后检查一下a[k]位置上是0还是1。 因为只有两种值,只要用一个线段树,支持区间求和、区间赋值即可。这样要排序一个区间时只要查询一下里面有几个1和几个0,然后把前半段赋值为0,后半段赋值为1即可(降序的话就是反过来)。 智商杯考试 你正参加一门考试。 这个考试很奇怪,考试一开始就把所有答案全部发给你了,但是并不告诉你答案和考试题目的对应关系,也就是说你根本不知道这个答案是哪个题目的。 由于智商低的原因,你根本看不懂题目,所以从题目来推断答案究竟属于哪个题目是不可能的……但是别慌,你可以向监考老师提问嘛。 他允许你一次性最多问m个答案的对应关系,他会告诉你这m个答案对应哪m道题,当然,他不会告诉你具体的对应关系。 比如: 你可以问:1,2,3号答案对应哪些问题? 监考老师说:对应3,7,9号问题。 现在问题来了,考试一共有n道问题,你每次提问最多提及m个答案,你需要最少问多少次呢? 1=n,m=1e9。 Sample input:4 2 Sample Output:2 你:1,2号答案对应哪些题目呢? 监考老师:对应3,4号题目。 你:1,3号答案对应哪些题目呢? 监考老师:对应2,4号题目。 你想了想:由于我问了两遍,都出现了4,所以4号题目肯定对应1号答案;再从第一个询问中得知,3号题目对应2号答案;第二个询问知道,2号题目对应3号答案;哦,那么剩下的4号答案就对应1号题目了! 题目来源:CF #127 div1 E 1.怎么样才算是知道了所有题目的答案呢? 假设现在有n个问题,你最多提及m个答案,你一共问了k次。 如果第i轮问到第j个问题,那么令a[i][j]=1,否则a[i][j]=0。 那么我们可以得到一个矩阵,比如样例: 1 1 0 0 1 0 1 0 通过观察可以发现,每一竖行实质上是一个k位的二进制数,只要这n个k位的二进制数都不一样,我们就能知道每道题所对应的答案了。 2.满足二分性质 证明:显然成立。 3.CheckN(m,k)如何实现? 每一竖都是一个k位的二进制。 0个1最多构造C(k,0)个k位的二进制数。 1个1最多构造C(k,1)个k位的二进制数。 ....... t个1最多构造C(k,t)个k位的二进制数。 然后判断这个矩阵的1的个数是否小于k*m就好了。 4.为什么我们只用check总共1的个数是否超过k*m,而不去check每一行的1的个数是否超过m? 假设我们满足总共1的个数不超过k*m,但是存在某一些位的1的个数超过了m。 那么必然存在一些位的1的个数少于m。 我们选择其中一个超过m的行A,选择其中一个少于m的行B。 然后我们再从n个串中找到x个在行A为1,行B为0的串,找到y个在A位中为0,B位中为1的串。 也是显然知道xy。 对于x个串,我们都将第A位置成0,B位置成1,显然这x个串仍然都是各不相同的,且最多在y串中找到一个和他相同的。 因为xy,所以肯定能够找到一个串是在y串没有与之对应的,那么我们只要变这个串就好了。 这样我们就得到了,A位置的1的总数-1,B位置的1的总数+1了。 所以只要满足总共1的个数不要超过k*m就好了。 美妙数据结构24合一 你有一个p数组和一个a数组。 p数组是{1,2,3,4}的排列,a数组是{1,2,3,....,n}的排列。 现在我想知道有多少对{t1,t2,t3,t4}满足以下条件: 1. 1 =t1t2t3t4=n 2. (p[i]-p[j])*(a[ti]-a[tj])=0 for all 1=i,j=4 N (1=N=2000) input: 5 1 2 3 4 1 2 3 4 5 output: 5 题目来源:叉姐 icpc camp 智障青年: 最智障的做法,就是把所有情况全部都讨论一下,都用两个树状数组去处理就好了,这个只要有耐心,慢慢写就好了。 但是智障还是会遇到2413这个顺序不会暴力,但是他灵机一动,发现2413 = 24xx-2431-2411-2433,然后容斥乱搞就好了,于是智障青年花了两个小时怼完了这道题。 才450行的代码嘛,简单。 文艺青年说,这道题明显可以简化: 可以分三派: 1、1和4不连在一起,那么就n方枚
文档评论(0)