poj 2886 Who Gets the Most Candies?(线段树)

题目链接:poj 2886 Who Gets the Most Candies?

题目大意:N个人围成一圈玩约瑟夫环游戏,不同的是。步长不固定,由前一个出局的人决定。给定K表示起始的人。

第i个淘汰的人将获得g(i)个糖果,问说谁获得的糖果最多。

g(x)为x的因子个数。

解题思路:起始g(x)是成阶段的,所以打表处理处g(x)递增值,对于每一个N,一開始找到小于等于N的最大x,那么第x个淘汰的人即为获得糖果数最多的家伙。剩下的就用线段树模拟游戏过程。

#include <cstdio>
#include <cstring>
#include <algorithm>using namespace std;
const int maxn = 500005;#define lson(x) ((x)<<1)
#define rson(x) (((x)<<1)+1)struct Node {int l, r, s;void set (int l, int r, int s) {this->l = l;this->r = r;this->s = s;}
}nd[maxn * 4];const int antipri[36] = {1,2,4,6,12,24,36,48,60,120,180,240,360,720,840,1260,1680,2520,5040,7560,10080,15120,20160,25200,27720,45360,50400,55440,83160,110880,166320,221760,277200,332640,498960,500001};
const int fact[36] = {1,2,3,4,6,8,9,10,12,16,18,20,24,30,32,36,40,48,60,64,72,80,84,90,96,100,108,120,128,144,160,168,180,192,200};int N, B, v[maxn];
char name[maxn][20];void build (int u, int l, int r) {nd[u].set(l, r, r - l + 1);if (l == r) return ;int mid = (l + r) / 2;build(lson(u), l, mid);build(rson(u), mid + 1, r);
}int query(int u, int x) {nd[u].s--;if (nd[u].l == nd[u].r)return nd[u].l;if (nd[lson(u)].s >= x)return query(lson(u), x);elsereturn query(rson(u), x - nd[lson(u)].s);
}int bsearch (int x) {int l = 0, r = 35;for (int i = 0; i < 20; i++) {int mid = (l + r) / 2;if (antipri[mid] > x)r = mid;elsel = mid;}return l;
}int main () {while (scanf("%d%d", &N, &B) == 2) {for (int i = 1; i <= N; i++)scanf("%s%d", name[i], &v[i]);build(1, 1, N);v[0] = 0;int E = bsearch(N), k = 0;for (int i = N; i; i--) {B = ((B + v[k] - (v[k] > 0 ? 2 : 1)) % i + i) % i + 1;k = query(1, B);if (N - i + 1 == antipri[E]) {printf("%s %d\n", name[k], fact[E]);break;}}}return 0;
}

转载于:https://www.cnblogs.com/zfyouxi/p/5159854.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/289327.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux c之动态打开链接库(dlopen dlsym dlclose)

1 linux提供了加载和处理动态链接库的系统调用 2 主要函数 1) dlopen、 dlopen以指定模式打开指定的动态连接库文件,并返回一个句柄给调用进程,打开模式如下: RTLD_LAZY 暂缓决定,等有需要时再解出符号 RTLD_NOW 立即决定,返回前解除所有未决定的符号。 2) dlsym、 …

甘肃2019年9月计算机二级报名入口,2019年9月甘肃计算机二级考试成绩查询入口...

【摘要】2019年9月份计算机二级考试已经圆满结束&#xff0c;参加考试的小伙伴们已经迫不及待的想要知道成绩了吧&#xff0c;小编对2019年9月甘肃计算机二级考试成绩查询入口进行了整理&#xff0c;参加9月份考试的朋友们到时候记得按时查询成绩哦&#xff01;想要了解更多计算…

FluentEmail - 适用于 .NET 和 .NET Core 的邮件发送库

简介FluentEmail - 适用于 .NET 和 .NET Core 的邮件发送库从 .NET 和 .NET Core 发送电子邮件的最简单方法。将 Razor 用于电子邮件模板并使用 SendGrid、MailGun、SMTP 等进行发送Nuget包•FluentEmail.Core - 域模型•FluentEmail.Smtp - 通过 SMTP 服务器发送电子邮件•Flu…

基于GLT法的风云三号气象卫星校正

GLT几何校正法利用输入的几何文件生成一个地理位置查找表文件(geographic lookup table,GLT),从该文件中可以了解到某个初始像元在最终输出结果中实际的地理位置。地理位置查找表文件是一个二维图像文件,文件中所包含两个波段:地理校正图像的行和列,文件对应的灰度值表示…

安装MySql出现Error Nr.1045的解决办法

如图&#xff0c;最后一步出现这个错误框 这是因为上次安装过MySql&#xff0c;其用户数据在卸载的时候没有被删除掉&#xff0c;解决办法如下&#xff1a; 显示隐藏的文件夹&#xff0c;打开C盘&#xff0c;找到下图文件删除之 删除之后再安装一遍MySQL&#xff0c;就可以了转…

CentOS下MySQL忘记root密码解决方法【转载】

1&#xff0e;首先确认服务器出于安全的状态&#xff0c;也就是没有人能够任意地连接MySQL数据库。 因为在重新设置MySQL的root密码的期间&#xff0c;MySQL数据库完全出于没有密码保护的 状态下&#xff0c;其他的用户也可以任意地登录和修改MySQL的信息。可以采用将MySQL对 外…

MYSQL - php 使用 localhost 无法连接数据库

php 使用 localhost 无法连接数据库&#xff0c;而使用127.0.0.1却能连接成功。 可能原因&#xff1a; 系统hosts文件未提供127.0.0.1到localhost的解析。解决方法&#xff08;以win7系统为例&#xff09;&#xff1a;找到C:&#xff3c;Windows&#xff3c;System32&#xff3…

python网易云_用python爬虫爬取网易云音乐

标签&#xff1a; 使用python爬虫爬取网易云音乐 需要使用的模块 只需要requests模块和os模块即可 开始工作 先去网易云音乐网页版找一下你想要听的歌曲点击进去。按键盘F12打开网页调试工具,点击Network就可以查看网络请求的相关信息&#xff0c;选择XHR&#xff0c;然后可以看…

android 固定底部 布局_Android系统列表控件

在android系统控件中&#xff0c;有多个控件可以展示列表数据。一、ListView该组件是android中最常用的一个UI组件&#xff0c;用于实现在屏幕上显示多个内容&#xff0c;以便于我们用手指进行滑动。ListView控件以列表的形式展示具体内容&#xff0c;并且能够根据数据的长度自…

C语言之在结构体里面放很多函数指针

1 原因 看了open ssl代码里面很多在结构体里面放很多函数指针,然后再来调用,这样比较规范和统一 2 代码实现 #include <stdio.h> #include <assert.h> #include <stdlib.h> #include <string.h> #include <pthread.h>typedef struct key_info …

计算机模拟考总结,高职单考单招计算机模拟一技术总结.doc

高职单考单招计算机模拟试卷一一、选择题(30*4分120分)1&#xff0e;从1946年第一台计算机诞生算起&#xff0c;计算机的发展至今经历了(? )4个年代。A.低档计算机、中档计算机、高档计算机、手提计算机B.微型计算机、小型计算机、中型计算机、大型计算机C.电子管计算机、晶体…

.NetCore中IdentityServer使用nginx-proxy的一次排错经历

前言最近在看 Duende.IdentityServer.Admin&#xff0c;本地使用IIS Express跑了一下源码&#xff0c;也看了一遍的代码&#xff0c;决定使用他们的模板创建一个Demo&#xff0c;部署在本地的Docker环境中&#xff0c;也算是踩一下坑吧。以下不会详细介绍项目的部署&#xff0c…

ENVI支持下利用高分辨率影像城市绿地信息提取方案

城市绿地在改善城市生态环境和人居环境起着积极的作用,城市绿地含量逐渐成为衡量城市生活质量的一个重要指标。此外,城市绿地的空间分布格局与其生态效应有着密切的关系。因此,必须客观、准确地掌握城市绿地信息。传统的城市绿化调查主要通过基层单位上报统计数据和实地抽样…

Job make U funck Uself!!!

今天武汉大雨&#xff0c;对于这个鬼地方已经习以为常&#xff0c;在实验室又一次看到有人前来应聘。 突然意识到当今学无大用&#xff01;&#xff08;一个英语专业毕业的本科生应聘秘书&#xff08;打杂的跑腿的&#xff09;&#xff09; 更让我惊讶的是这位竟然说不拿工资先…

nmap脚本使用总结

原文链接&#xff1a;http://drops.wooyun.org/tips/2188 0x00 前言&#xff1a; nmap的基本介绍和基本使用方法&#xff0c;在乌云知识库中已经有人提交过&#xff0c;讲的比较详细&#xff0c;在此文中就不再讲述。 具体链接&#xff1a;http://drops.wooyun.org/tips/2002 本…

python爬虫实例手机_Python爬虫实现爬取京东手机页面的图片(实例代码)

实例如下所示&#xff1a; __author__ Fred Zhao import requests from bs4 import BeautifulSoup import os from urllib.request import urlretrieve class Picture(): def __init__(self): self.headers {User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) Ap…

linux平台安装React Native遇到的坑

3年前我在windows平台安装过React Native,我一直都记忆犹新,那个时候facebook刚推出支持安卓,然后花了一天的时间在自己的window电脑上配置好了,还是很兴奋的,安装博客地址如下 Android之Windows下搭建React Native Android开发环境&#xff08;差不多搞了一天&#xff09; 现…

身份管理软件公司Okta计划IPO,目标融资1亿美元

Okta是一家专门提供身份管理和单点登陆&#xff08;SSO&#xff09;软件的公司。今日公司提交了一份S-1表格正式启动了IPO程序。根据文件内容显示&#xff0c;Okta计划在首次公开募股中融资1亿美元。 公司表示&#xff0c;Okta将在纳斯达克上市&#xff0c;股票代码为OKTA。 即…

jmeter对乱码如何处理_JMeter读取 Excel 表中用例数据实现接口压测

传统的接口测试&#xff0c;都是在接口中手动输入不同用例准备的多种场景参数数据&#xff0c;一遍一遍的输入来执行多个不同的用例&#xff0c;但是现在利用excel表格准备各种类型的数据&#xff0c;使用Jmeter中Jmeter CSV Data Set Config参数化实现可设置的、一次性的读取e…

C# 利用.NET 升级助手将.NET Framework项目升级为.NET 6

概述.NET6 正式版本已经发布有一阵子了&#xff0c;今天我就体验一下如何将.NET Framework的项目升级为.NET 6.升级条件&#xff1a;Windows 操作系统.NET 6 SDKVisual Studio 2022 17.0 或更高版本环境准备①首先是VS2022下载&#xff0c;直接上微软官方网站&#xff0c;下载地…