题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5297

题意:给你一个所有正整数的序列,然后去掉满足x^(2~r)的所有数(x为所有正整数,r>=2题目给出),问你现在这个序列的第n个数是什么

解:首先想到写一个函数func(y),它可以计算出给定数字y是序列中第几个数,这样我们大概可以二分答案~(事实上会TLE,得用迭代法,当然迭代的话也是用这个函数)

那么如何实现func:

首先想去掉满足x^2的所有数,我们可以用pow(y, 1/2)计算出y以下有多少个满足x^2的数

然后去掉满足x^3的,注意到这里x^6的数被去除了两次,那么我们可以进行容斥,这样func就实现了

实现了func以后,开始二分,结果各种TLE,迭代就过了(具体看代码,感觉迭代的复杂度就是玄学~)

 /*
* Problem:
* Author: SHJWUDP
* Created Time: 2015/8/3 星期一 14:44:48
* File Name: 233.cpp
* State:
* Memo:
*/
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath> using namespace std; long long n;
int r;
vector<int> tmpTable;
vector<int> table;
long long cal(long long x, long long power) {
return pow(double(x+0.5), 1.0/power)-;
}
void init() {
table.clear();
for(int i=; i<(int)tmpTable.size() && -tmpTable[i]<=r; i++) {
int a=tmpTable[i];
int tmp=table.size();
for(int j=; j<tmp; j++) {
int b=table[j];
if(abs(a*b)<=) table.push_back(a*b);
}
table.push_back(a);
}
}
long long func(long long x) {
if(x==) return ;
long long res=x;
for(int power : table) {
long long tmp=pow(double(x+0.5), 1.0/abs(power))-;
if(power<) res-=tmp;
else res+=tmp;
}
return res-;
}
int main() {
#ifndef ONLINE_JUDGE
freopen("in", "r", stdin);
// freopen("out", "w", stdout);
#endif
vector<int> vis(, );
for(int i=; i<; i++) {
if(vis[i]!=) continue;
tmpTable.push_back(-i);
for(int j=i+i; j<; j+=i) {
vis[j]=;
}
}
int T;
scanf("%d", &T);
while(T--) {
scanf("%I64d%d", &n, &r);
init();
long long ans=n, tmp=-;
while(tmp!=n) {
tmp=func(ans);
ans+=n-tmp;
}
printf("%I64d\n", ans);
}
return ;
}

hdu 5297

[2015hdu多校联赛补题]hdu5297 Y sequence的更多相关文章

  1. [2015hdu多校联赛补题]hdu5301 Buildings

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5301 题目大意:给你一块由1x1方格组成的矩形区域,其中有且仅有一个坏块,现在你要在上面建矩形的房子, ...

  2. [2015hdu多校联赛补题]hdu5384 Danganronpa

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5384 题意:函数f(A, B)定义:A.B为字符串,f(A, B)为A中有多少个不同的B(ex:f(& ...

  3. [2015hdu多校联赛补题]hdu5372 Segment Game

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5372 题意:进行n次操作,操作分两种,0和1,每一个0操作按出现顺序有一个编号(从1开始 0操作 0 ...

  4. [2015hdu多校联赛补题]hdu5302 Connect the Graph

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5302 题意:给你一个无向图,它的边要么是黑色要么是白色,且图上的每个点最多与两个黑边两个白边相连.现在 ...

  5. [2015hdu多校联赛补题]hdu5324 Boring Class

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5324 题意:给你一个二维的序列,让你找出最长的第一维升第二维降的子序列(如果多个答案,输出字典序最小) ...

  6. [2015hdu多校联赛补题]hdu5378 Leader in Tree Land

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5378 题意:给你一棵n个结点的有根树.因为是有根树,那么每个结点可以指定以它为根的子树(后面讨论的子树 ...

  7. [2015hdu多校联赛补题]hdu5371 Hotaru's problem

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5371 题意:把一个数字串A翻过来(abc翻过来为cba)的操作为-A,我们称A-AA这样的串为N-se ...

  8. [2015hdu多校联赛补题]hdu5303 Delicious Apples

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5303 题意:在一个长为L的环形路径上种着一些苹果树,告诉你苹果树的位置(题目中以0~L指示坐标)及苹果 ...

  9. [2015hdu多校联赛补题]hdu5299 Circles Game

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5299 题意: 在欧几里得平面上有n个圆,圆之间不会相交也不会相切,现在Alice和Bob玩游戏,两人轮 ...

随机推荐

  1. LVM逻辑卷管理

    一.LVM简介 LVM(Logic Volume Manager)逻辑卷管理,简单理解就是将一块或多块硬盘的分区在逻辑上集合,当一块大硬盘来使用. 其特点是: 1.可以实现在线动态扩展,也可以缩减 2 ...

  2. Codeforces Round #156 (Div. 2)

    A. Greg's Workout 模3求和,算最大值. B. Code Parsing 最后左半部分为x,右半部分为y,那么从中间不断去掉xy,直到其中一种全部消去. C. Almost Arith ...

  3. spring boot Swagger 集成

    1. pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://ww ...

  4. Android Programing 学习笔记(一)

    最近学习android 开发,拜读android programing,一步一步学习.囫囵吞枣,现已看到第十八章.今天把最近的学习过程中学到的一些内容进行一下总结. 一:Fragment 和 Acti ...

  5. SQL语句统计每天、每月、每年的 数据

    SQL语句统计每天.每月.每年的数据 1.每年select year(ordertime) 年,sum(Total) 销售合计from 订单表group by year(ordertime) 2.每月 ...

  6. WEB-INF目录下的文件访问权限(待解决)

    对于Tomcat服务器而言,WEB-INF目录下的文件是不能通过在浏览器中直接输入地址的方式来访问. 原因:还不清楚

  7. 黄聪:PHP7.0中htmlspecialchars出错解决方案(wordpress)

    htmlspecialchars( $context, ENT_COMPAT, 'UTF-8' )

  8. Notepad++快捷键&正则表达式替换字符串&插件

    Notepad++绝对是windows下进行程序编辑的神器之一,要更快速的使用以媲美VIM,必须灵活掌握它的快捷键,下面对notepad++默认的快捷键做个整理(其中有颜色的为常用招数): 1. 文件 ...

  9. ASP.NET MVC IOC 之AutoFac攻略

    一.为什么使用AutoFac? 之前介绍了Unity和Ninject两个IOC容器,但是发现园子里用AutoFac的貌似更为普遍,于是捯饬了两天,发现这个东东确实是个高大上的IOC容器~ Autofa ...

  10. ADF_Data Binding系列3_使用Placeholder Data Control

    2015-02-16 Created By BaoXinjian