这题一开始写的线段数是从中间开始查找 k个 导致是nlogn 每次查找应该都是从头找每次找的个数不同就好了

还有一种递推的写法我放下面了

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int MAXN = 3e6+5;
const int MOD = 1e9+7; int N,K,Q;
int ans[MAXN];
int turn[MAXN];
int dp[MAXN];
int a[MAXN];
int main(){
int T; scanf("%d",&T);
while(T--) {
scanf("%d %d %d",&N,&K,&Q); int tt = N;
int tot = 0;
turn[0] = 0;
while(tt) {
++tot;
turn[tot] = turn[tot-1] + (tt-1) / K + 1;
tt = tt-1-(tt-1)/K;
} for(int i = 0; i < N; ++i) {
dp[i] = i%K? dp[i - i/K -1]+1 : 0;
a[i] = i%K? a[i - i/K -1] : i/K+1;
}
for(int i = 0; i < N; ++i) {
int tmp = turn[dp[i]] + a[i];
ans[tmp] = i+1;
} for(int i = 0; i < Q; ++i) {
int a; scanf("%d",&a);
printf("%d\n",ans[a]);
}
}
return 0;
}
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
const int MAXN = 3e6+5;
int N,K,Q;
int tree[MAXN<<2];
int st[MAXN];
void Build(int l,int r,int rt){
tree[rt] = r-l+1;
if(l == r) {
return;
}
int m = (l+r)>>1;
Build(lson); Build(rson);
} int Ed;
void Find(int sum,int l,int r,int rt) {
if(l == r) {
tree[rt] = 0; Ed = r; return;
}
int m = (l+r) >>1;
if(tree[rt<<1] >= sum) Find(sum,lson);
else Find(sum-tree[rt<<1],rson);
tree[rt] = tree[rt<<1] + tree[rt<<1|1];
} int main(){
int T; scanf("%d",&T);
while(T--){
memset(tree,0,sizeof(tree));
scanf("%d %d %d",&N,&K,&Q);
Build(1,N,1); int sz = N; int cnt = 0;
while(sz>0) {
int mx = (sz-1)/K;
for(int i = 0; i <= mx; ++i) {
int sum = 1+i*K-i;
Find(sum,1,N,1);
st[++cnt] = Ed; sz--;
}
} for(int i = 1; i <= Q; ++i){
int a; scanf("%d",&a);
printf("%d\n",st[a]);
}
}
return 0;
}

hdu5860 Death Sequence的更多相关文章

  1. HDU 5860 Death Sequence(死亡序列)

    p.MsoNormal { margin: 0pt; margin-bottom: .0001pt; text-align: justify; font-family: Calibri; font-s ...

  2. 2016暑假多校联合---Death Sequence(递推、前向星)

    原题链接 Problem Description You may heard of the Joseph Problem, the story comes from a Jewish historia ...

  3. HDU 5860 Death Sequence(递推)

    HDU 5860 Death Sequence(递推) 题目链接http://acm.split.hdu.edu.cn/showproblem.php?pid=5860 Description You ...

  4. hdu 5860 Death Sequence(递推+脑洞)

    Problem Description You may heard of the Joseph Problem, the story comes from a Jewish historian liv ...

  5. HDU 5860 Death Sequence

    用线段树可以算出序列.然后o(1)询问. #pragma comment(linker, "/STACK:1024000000,1024000000") #include<c ...

  6. 2016 Multi-University Training Contest 10 || hdu 5860 Death Sequence(递推+单线约瑟夫问题)

    题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=5860 题目大意:给你n个人排成一列编号,每次杀第一个人第i×k+1个人一直杀到没的杀.然后 ...

  7. HDU5860 (递推)

    Problem Death Sequence 题目大意 排成一行的约瑟夫问题. n个人排成一行,从第一个人开始,每个k个人报数,报到数的人被杀死,剩下的人重新排成一行再报数. 一共q个询问,每次询问第 ...

  8. 2016 Multi-University Training Contest 10

    solved 7/11 2016 Multi-University Training Contest 10 题解链接 分类讨论 1001 Median(BH) 题意: 有长度为n排好序的序列,给两段子 ...

  9. The Kernel Newbie Corner: Kernel Debugging with proc "Sequence" Files--Part 3

    转载:https://www.linux.com/learn/linux-career-center/44184-the-kernel-newbie-corner-kernel-debugging-w ...

随机推荐

  1. 制作 alipay-sdk-java包到本地仓库

    一.首先 搭建好maven 基础环境,本地可以运行maven 命令 从支付宝官网上下载sdk https://doc.open.alipay.com/doc2/detail?treeId=54& ...

  2. python基础(str,list,tuple)

    python是一门动态解释型的强类型定义语言(先编译后解释) 动态类型语言 动态类型的语言编程时,永远也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来 解释型 程 ...

  3. laravel服务容器-----深入理解控制反转(IoC)和依赖注入(DI)

    首先大家想一想什么是容器,字面意思就是盛放东西的东西,常见的变量,对象属性都是容器,一个容器能够装什么东西,完全在于你对这个容器的定义.有的容器不仅仅只是存文本,变量,而是对象,属性,那么我们通过这种 ...

  4. 打通MySQL的操作权限

    打通MySQL的操作权限 前面已经总结了<XAMPP的配置与使用>,虽然可以直接通过GUI控制面板去启动MySQL服务,但是有些相关的操作则需要在Windows中的CMD命令窗口中去对My ...

  5. nginx/php-fpm 访问php文件直接下载而不运行

    遇到这种问题,首先确认你web服务器配置中的.PHP是不是被指定给FastCGI server处理: location ~ .php$ { fastcgi_pass ; } 如已配置,那么可能是由于f ...

  6. Nginx:413 Request Entity Too Large解决

    最近在做给博客添加上传PDF的功能,但是在测试上传文件的过程中遇到了413 Request Entity Too Large错误.不过这个无错误是很好解决的,这个错误的出现是因为上传的文件大小超过了N ...

  7. 洛谷P1171 售货员的难题【状压DP】

    题目描述 某乡有n个村庄(1 输入格式: 村庄数n和各村之间的路程(均是整数). 输出格式: 最短的路程. 输入样例: 3 0 2 1 1 0 2 2 1 0 输出样例 3 说明 输入解释 3 {村庄 ...

  8. linux磁盘及分区详解

    1.Linux 分区简介 1.1 主分区 vs 扩展分区 硬盘分区表中最多能存储四个分区,但我们实际使用时一般只分为两个分区,一个是主分区(Primary Partion)一个是扩展分区(extend ...

  9. 读取Pdm文件内容(含源码)

    Pdm文件,就是PowerDesigner软件生成的文件,用来设计数据库表结构非常适合.其实,它的文件存储格式就是Xml,网上有很多代码,可以读取pdm文件内容.代码可以使用,但一般只能读取简单的pd ...

  10. TzObjectInspector 一例

    TzObjectInspector Github上的一个开源组件!可以做到类似Delphi IDE属性,事件面板的样式!作者持续更新中... 看起来是这个样子: 这个东西用起来并不像想象的那样可以直接 ...