Josephus 线段数版
每次计算出当前点与第一个点的距离即可。
代码如下;
#include<stdio.h> #include<stdlib.h> #include<string.h> #include<iostream> #include<vector> #include<string> #include<math.h> #include<map> #include<set> #include<algorithm> #define MAXN 100000using namespace std;int N, M, cur;struct node {int l, r;int sum; //gint v; }s[MAXN<<2];void push_up(int p) {s[p].sum = s[p<<1].sum + s[p<<1|1].sum; }void build(int p, int l, int r) {s[p].l = l, s[p].r = r; if (l != r) {int mid = (l + r) >> 1;build(p<<1, l, mid);build(p<<1|1, mid+1, r);push_up(p);} else {s[p].sum = 1;s[p].v = l;} }int query(int p, int x) {if (s[p].l == s[p].r) {s[p].sum = 0;return s[p].v; }int k;if (x > s[p<<1].sum) {k = query(p<<1|1, x-s[p<<1].sum);push_up(p);return k;} else {k = query(p<<1, x);push_up(p);return k;} }int main( ) {while (scanf("%d %d", &N, &M) == 2) {cur = 1;build(1, 1, N);while (s[1].sum > 0) {cur += M-1; if (cur >= s[1].sum) {cur %= s[1].sum;if (!cur) cur = s[1].sum;}printf("%d ", query(1, cur)); }puts("");}return 0; }
Josephus 线段数版相关推荐
- [TJOI2011] 书架(线段数优化dp + 单调栈)
problem luogu-P1295 首先可以列出一个暴力 dpdpdp 转移. 设 f(i):f(i):f(i): 到 iii 为止划分若干组,每组最大值的和 的最小值. 然后枚举最后一组,即 i ...
- 线段数单点更新——HDU 2795
对应HDU题目:点击打开链接 Billboard Time Limit: 20000/8000 MS (Java/Others) Memory Limit: 32768/32768 K (Jav ...
- codeforces332B - Maximum Absurdity 线段数 or dp
题意:给你一个序列,找两个长度为 k 且没有重合区间的数使得其和最大 解题思路: 1)线段树 想了半天想不出只能先用线段树撸了一发,这题dp 第一名只要了 9分钟. 就是把起点为 i 长度为 k 的 ...
- 蒟蒻君的刷题日记Day12(线段树专题T4):P8082 [COCI2011-2012#4] KEKS 线段树版题解
解题思路 看题解区的大佬们用的都是单调栈,本蒟蒻献上一篇线段树题解. 整个数最大,首先位数是确定的,则肯定优先考虑高位大小. 大体思路就是从前向后依次求出每一位的值(好像是废话). 对于第 iii 位 ...
- POJ - 2528 Mayor's posters(线段数+离散化)
题目链接:点击查看 题目大意:给定一个长度为1e7的墙,然后给出n张海报,每张海报都会占据墙上的一部分宽度,问按照给出的次序往墙上贴海报, 最后有几张海报能露出来(露出部分也算) 题目分析:线段树的区 ...
- 线段树版子题【HDU - 1166 敌兵布阵】【HDU-1754 I Hate It】【HDU-1698 Just a Hook】【OpenJ_Bailian3439A Simple Pro】
敌兵布阵 C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了.A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动 ...
- gym/101955/problem/E - The Kouga Ninja Scrolls 线段数 维护 切比雪夫距离 2018沈阳icpc
传送门 思路: 这道题要把给定的每个坐标利用切比雪夫坐标表示,这样两个点的距离就是max(dx,dy),而不是一开始的dx + dy,有利于线段树的维护,又由于询问的是区间的最大差值,限制是两个点是属 ...
- HDU 1754 I Hate It(线段树版)
题目链接 找最大,这里居然会超时. 1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <string.h> ...
- 线段树 ---- Codeforces 737 Div2 D. Ezzat and Grid 维护dp
题目链接 题目大意: 就是给你很多行的010101串,长度是1e91e91e9,每一行都有若干段的连续的111,对于给定的串集合是美丽的美丽的美丽的的条件是任意相邻两行的串至少有一个列是同时有111的 ...
最新文章
- 用中值排序基数法实现树状结构 (转)
- (c语言)和与积的运算第四篇
- UCOSIII移植问题说明
- 文件编码和RandomAccessFile文件流的使用--IO学习笔记(一)
- Javascript覆盖率(jstd)报表解析Maven插件
- 联想投资服务器5g芯片,从5G投票到要没必要做芯片,联想到了最危险的时候
- android 涂鸦之图片叠加,android图像处理系列之七--图片涂鸦,水印-图片叠加...
- .net Remoting(1)——起点,从示例做起
- 目标检测工具安装使用--labelImg
- 再次理解HTTP请求过程[概念原理篇]
- 零基础 SQL 数据库小白,从入门到精通的学习路线与书单
- 【翻译】Java 面向对象编程基本概念
- OpenWRT 迅雷远程下载设置
- fineReport10连接达梦数据库
- 计算机毕业设计JAVA旅游管理系统mybatis+源码+调试部署+系统+数据库+lw
- EasyExcel · 写excel
- JavaScript <script>
- win7有线无线可以联网,但是显示图标打红叉
- 如何将MyEclipse项目导入eclipse
- 敏捷测试--测试用例管理平台
热门文章
- android override作用,Android Studio中@override的含义
- 在设计四人抢答器中灯全亮_数字电子技术课程设计报告(四人抢答器).doc
- kettle优化抽取数据速度_基于kettle工具提高表输出写入速度(每秒万条记录)
- mysql 双主 脑裂_MySQL双主(主主)架构方案
- Spring mvc @PathVaribale
- CentOS7没有ifconfig命令的解决方法
- 如何查html病毒svchost.exe,小编教你在Win7系统中检查svchost.exe进程是否为病毒的方法步骤...
- python color属性_模块“cv2.cv2”没有“COLOR”属性“BGR2GREY”
- 如何导出共享文件夹的权限或转移
- 微服务架构开发实战:如何实现微服务的自动扩展?