UOJ52——【UR #4】元旦激光炮】的更多相关文章

题目链接 \(Description\) 交互库中有三个排好序的,长度分别为\(n_a,n_b,n_c\)的数组\(a,b,c\).你需要求出所有元素中第\(k\)小的数.你可以调用至多\(100\)次询问某个数组中的第几个数的函数. \(n_a,n_b,n_c\leq 10^5\). \(Solution\) 显然的做法是先枚举这个数在哪个数组中,再在三个数组中二分.这个次数是\(log^2\)的. 我们如果每次确定一些数比第\(k\)个数小,那我们可以直接将这些数删掉. (可以假设数组是无限…
1.题目大意:就是给你三个数组啦,然后让你找到其中的第K大,但是,不可以直接访问数组,必须通过一种函数,最后的分数 是看调用几次这个函数,100次以内10分,2000以内6分.... 2.分析:最开始,并不会100分啦,所以就敲了一个六十分的代码, 就是二分一个值,然后再套一个二分验证一下,这样就过了60分(可还是憋了one hour) #include <cstdio> #include <cstdlib> #include <cstring> #include &l…
链接:http://uoj.ac/problem/52 刚刚越过绝境长城,只见天空中出现了炫目的光芒 —— 圣诞老人出现了. 元旦三侠立刻进入战斗.生蛋侠.圆蛋侠和零蛋侠分别有 na,nb,ncna,nb,nc 个激光炮.生蛋侠的激光炮的威力分别为 a0,a1,…,ana−1a0,a1,…,ana−,圆蛋侠的激光炮的威力分别为 b0,b1,…,bnb−1b0,b1,…,bnb−,零蛋侠的激光炮的威力分别为 c0,c1,…,cnc−1c0,c1,…,cnc−. 元旦三侠的激光炮的威力已经按从小到大…
题目大意:交互题,给你三个有序数组,长度分别为$n\_a,n\_b,n\_c$,都不超过$10^5$.三个函数$get\_a(i),get\_b(i),get\_c(i)$,分别返回$a_i,b_i,c_i$. 现在要你编写一个函数$query\_kth()$,求出三个数组中第$k$大的元素. 题解:每次求$\Big\lfloor\dfrac k 3\Big\rfloor$的$a,b,c$,把最小的舍去 卡点:下标移动时写错 C++ Code: #include "kth.h" #in…
题意 给出三个已经排好序的数组$a, b, c$ 在$100$次询问内找出第$k$小的元素 Sol 一种很显然的$log^2n$的做法:首先在$a$中二分,然后再$b,c$中二分.这样可以得到$60$分的好成绩. 然而这算法就没什么优化的空间了... 考虑另一种做法. 我们每次对三个数组询问第$\frac{3}{k}$个数. 然后我们可以直接把最小对应的那一段抛弃.正确性显然吧.或者你可以考虑一下最坏情况 那么$k$就缩小了$\frac{1}{3}$ 算一下,查询次数不会超过$99$. 具体可以…
Code: #include "kth.h" #include<iostream> int minn(int x,int y){return x<y?x:y;}; int query_kth(int n_a, int n_b, int n_c, int k) { int pa=0,pb=0,pc=0,tmin; while(k) { int l=(k-2)/3; int t1=get_a(pa+l); int t2=get_b(pb+l); int t3=get_c(…
http://uoj.ac/problem/52 题意:每次可以得到3个序列中 思路:每次分别取出三个序列的K/3长度的位置,取最小的那个,然后每次减掉它,总复杂度是Nlog3N #include "kth.h" #include<algorithm> ]; int query_kth(int n_a, int n_b, int n_c, int k) { int Len=k; ,lb=,lc=; ; ){ ,vb=,vc=; ,n_a-la+); ,n_b-lb+); ,…
题目描述 给出 $n$ 和 $m$ ,$m$ 次询问.每次询问给出 $a$ 和 $b$ ,两人轮流选择:将 $a$ 加一或者将 $b$ 加一,但必须保证 $a^b\le n$ ,无法操作者输,问先手是否必胜. $n\le 10^9$ ,$m\le 10^5$ ,$a\ge 2$ ,$b\ge 1$ ,$a^b\le n$ 题解 博弈论+dp 显然可以想到预处理 $f[i][j]$ 表示 $a$ 为 $i$ ,$b$ 为 $j$ 时先手能否胜利.显然由 $f[i+1][j]$ 和 $f[i][j+…
Preface 菜鸡HL终于狗来了他的省选停课,这次的时间很长,暂定停到一试结束,不过有机会二试的话还是可以搞到4月了 这段时间的学习就变得量大而且杂了,一般以刷薄弱的知识点和补一些新的奇怪技巧为主. 偶尔也会打一些比赛找找手感(比如HHHOJ的比赛,Luogu比赛,以及comet OJ上之前的CCPC题) CF和CC看情况,主要是我真的不太喜欢读英文题的恐怖感觉233 希望这段时间的努力可以让我不跪省选吧 2-26 早上晨跑完了就和杨浩讲了停课的事,不出意外地很轻松就通过了. 然后回班拿了点东…
[UOJ#51][UR #4]元旦三侠的游戏(博弈论) 题面 UOJ 题解 考虑暴力,\(sg[a][b]\)记录\(sg\)函数值,显然可以从\(sg[a+1][b]\)和\(sg[a][b+1]\)推过来. 发现可以从\(sg[a][b]\)推到\(sg[a][b+1]\)的值很少,所以可以直接把这些值全部提前计算出来,这部分大概有\(\sqrt n\)个,剩下的可以推到\(sg[a+1][b]\)而不能推到\(sg[a][b+1]\)的位置可以通过\(a\)以及最大的满足\(x^b\le…