UVA - 11246 - K-Multiple Free set(容斥原理)

题意:给定n(1 <= n <= 10^9)和k(1 <= k <= 100),从1~n中选尽量多的整数,使的任意两个整数之间都不是k倍的关系。

容斥原理,(例如n = 20,k = 3,答案为16个数(1,9,2,18,4,12,5,15,7,8,10,11,13,14,16,17,19,20))

一、n个数内共有n / k组数成为连续的k倍关系

       (有1、3、92、6、184、125、15781011131416171920,共n - n / k = 14个)

二、但是互为k ^ 2倍的关系同时也被删除了,所以要加回来

       (有918,共n - n / k + n / (k^2) = 16个)

三、若还存在k ^ 3倍的关系同时也被多加了,所以要再减去

四、若还存在k ^ 4倍的关系同时也被多加了,所以要加回来

……

综上,结果为n - n / k + n / (k ^ 2) - n / (k ^ 3) + n / (k ^ 4)……即应用容斥原理

(memset对于初始化10 ^ 9等的大数组非常慢,交的时候没有删去即TLE)

 

 1 #include<cstdio>  
 2 #include<cstring>  
 3 #include<cctype>  
 4 #include<cstdlib>  
 5 #include<cmath>  
 6 #include<iostream>  
 7 #include<sstream>  
 8 #include<iterator>  
 9 #include<algorithm>  
10 #include<string>  
11 #include<vector>  
12 #include<set>  
13 #include<map>  
14 #include<deque>  
15 #include<queue>  
16 #include<stack>  
17 #include<list>  
18 typedef long long ll;  
19 typedef unsigned long long llu;  
20 const int MAXN = 100 + 10;  
21 const int MAXT = 1000000000 + 10;  
22 const int INF = 0x7f7f7f7f;  
23 const double pi = acos(-1.0);  
24 const double EPS = 1e-6;  
25 using namespace std;  
26   
27 int T;  
28 ll n, k;  
29   
30 ll solve(){  
31     ll cur = 1, ans = n, tmp = n / k;  
32     while(tmp){  
33         ans -= cur * tmp;  
34         tmp /= k;  
35         cur = -cur;  
36     }  
37     return ans;  
38 }  
39   
40 int main(){  
41     scanf("%d", &T);  
42     while(T--){  
43         scanf("%lld%lld", &n, &k);  
44         printf("%lld\n", solve());  
45     }  
46     return 0;  
47 }  

 

转载于:https://www.cnblogs.com/tyty-TianTengtt/p/5995910.html

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

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

相关文章

2017年php还能火多久,PHP还会火吗?

据不完全数据得知&#xff0c;我国对PHP人才非常紧缺&#xff0c;大约每年有50万人左右。伴随着近几年信息化&#xff0c;智能化&#xff0c;网络化的发展&#xff0c;PHP的发展前景也是不可估量的&#xff0c;那么&#xff0c;你知道是什么影响PHP继续火热的吗?下面我们就来分…

[JZOJ P1288] [DP]矩阵取数

kaike 传送门 07年noipT3&#xff1f; 要我写我肯定放弃 嗯没错就是这么果断 据说要 高精 DP 状态&#xff1f; 举例说明&#xff0c;假设有矩阵 a1,a2,a3,a4....an b1,b2,b3,b4....bn 假设矩阵的最大得分取法为 a1*2b1*2a2*4b2*4a3*8b3*8.....an*2^nb2*2^n&#xff1b; 可以转…

php留言板实现留言评价,PHP实现留言板功能的思路

本文实例为大家分享了php留言板的实现思路&#xff0c;供大家参考&#xff0c;具体内容如下1.创建一个存放留言信息的文件名2.获取表单中的数据给一个变量3.判断文件的时候存在4.对文件执行写的操作&#xff0c;在这之前&#xff0c;注意打开文件的时候&#xff0c;选择对文件的…

jQuery 获取页面元素的属性值

获取浏览器显示区域&#xff08;可视区域&#xff09;的高度 &#xff1a; $(window).height(); 获取浏览器显示区域&#xff08;可视区域&#xff09;的宽度 &#xff1a;$(window).width(); 获取页面的文档高度 $(document).height(); 获取页面的文档宽度 &#xf…

php解析xml数据格式,PHP解析xml格式数据工具类实例分享

本文主要介绍了PHP解析xml格式数据工具类,涉及php针对xml格式数据节点添加、获取、解析等相关操作技巧,需要的朋友可以参考下&#xff0c;希望能帮助到大家。本文实例讲述了PHP解析xml格式数据工具类。分享给大家供大家参考&#xff0c;具体如下&#xff1a;class ome_xml {/**…

Linux命令入门

// 查看日历cal // 修改密码passwd // 查看目录和文件ls -lls // 查看当前用户信息whoami // 查看当前在线用户userswho 在Linux中&#xff0c;可以使用 vi 编辑器创建一个文本文件&#xff0c;例如&#xff1a;$ vi filename上面的命令会创建文件 filename 并打开&#xff0c;…

php 动态参数,php怎么实现动态传参数?

先贴代码&#xff0c;代码精简了。$invoker_function($argus);}}?>描述&#xff1a;程序是在ThinkPHP开发&#xff0c;目的是把Cache的get方法接收的参数转发到指定的方法上&#xff0c;最后一行&#xff1a;其中D方法是ThinkPHP自带的方法用的是单例模式。如果不加参数$ar…

Bug2算法的实现(RobotBASIC环境中仿真)

移动机器人智能的一个重要标志就是自主导航&#xff0c;而实现机器人自主导航有个基本要求——避障。之前简单介绍过Bug避障算法&#xff0c;但仅仅了解大致理论而不亲自动手实现一遍很难有深刻的印象&#xff0c;只能说似懂非懂。我不是天才&#xff0c;不能看几遍就理解理论中…

php l方法,ThinkPHP的L方法使用简介

thinkPHP的L方法用于启用多语言的情况下&#xff0c;设置和获取当前的语言定义。其调用格式为&#xff1a;L(语言变量[,语言值])1.设置语言变量除了使用语言包定义语言变量之外&#xff0c;我们可以用L方法动态设置语言变量&#xff0c;例如&#xff1a;L(LANG_VAR,语言定义);语…

linux-pcap 抓包程序框架

转&#xff1a;http://blog.chinaunix.net/uid-21556133-id-120228.html libpcap详解2010-12-01 22:07libpcap&#xff08;Packet Capture Library&#xff09;&#xff0c;即数据包捕获函数库&#xff0c;是Unix/Linux平台下的网络数据包捕获函数库。它是一个独立于系统的用户…

策略模式场景举例

容错恢复机制 容错恢复机制是应用程序开发中非常常见的功能。那么什么是容错恢复呢&#xff1f;简单点说就是&#xff1a;程序运行的时候&#xff0c;正常情况下应该按照某种方式来做&#xff0c;如果按照某种方式来做发生错误的话&#xff0c;系统并不会崩溃&#xff0…

php写抢票脚本,火车票抢票python代码公开揭秘!

市场上很多火车票抢票软件大家应该非常熟悉&#xff0c;但很少有人研究具体是怎么实现的&#xff0c;所以觉得很神秘&#xff0c;其实很简单。下面使用Python模拟抢票程序&#xff0c;给大家揭秘抢票到底是怎么回事。该代码仅供参考&#xff0c;主要用于大家沟通交流&#xff0…

python不用加号实现加法

问题: Calculate the sum of two integers a and b, but you are not allowed to use the operator and -.Example:Given a 1 and b 2, return 3. class Solution(object):def getSum(self, a, b):""":type a: int:type b: int:rtype: int"""…

.net与mysql,ASP.NET与MySql的连接

ASP.NET与MySql的连接1.数据连接方式ASP.NET本身的数据访问ADO.NET不支持对于MySql的连接和查询&#xff0c;但是MySQL官网上均提供了多种ASP.NET连接到MySQL的方式&#xff1a;(1)ODBC驱动的访问方式&#xff1a;mysql-connector-odbc-5.1.5-win32.msi&#xff0c;ODBC(2)ADO.…

php 反射 视频教程,php 实现反射

定义一个人类class person{public $name;public $gender;public function say(){//echo $this->name."say".$this->gender;}public function __set($name,$value){$this->name$value;}public function __get($name){if(!isset($name)){echo "未设置&qu…

代理模式——HeadFirst设计模式学习笔记

代理模式&#xff1a;为另一个对象提供一个替身或占位符控制这个对象的访问 特点&#xff1a; 让代理对象控制对象的访问&#xff0c;被代理对象可以是远程对象&#xff08;远程代理&#xff09;&#xff0c;创建开销较大对象&#xff08;虚拟代理&#xff09;&#xff0c;或需…

cursor用法java,Cursor的基本使用方法

Cursor的基本使用方法今天在用到Cursor的时候发现&#xff0c;有很多游标相关的知识还是有欠缺&#xff0c;在网上搜了篇基础讲解的文&#xff0c;觉得还不错&#xff0c;自己整理了一下发上来。虽然很基础&#xff0c;但是有一些内容之前确实没有很扎实得掌握&#xff0c;所以…

$(document).ready()与window.onload的区别

1、执行时间&#xff1a; window.onload要等到页面所有元素加载完毕才执行&#xff0c;包括&#xff08;图片、flash等&#xff09; $(document).ready()在DOM结构绘制完毕后就执行&#xff0c;不必等到加载完毕。 2、执行个数&#xff1a; 如果有多个window.onload&#xff0c…

mongo java 日期,Java 8日期/时间(JSR-310)类型与Spring Data MongoDB的映射

我有Java 8日期/时间字段的简单文档Documentpublic class Token {private Instant createdAt;...}我希望坚持使用Spring Data MongoDB 1.5版.但java.time.Instant类型的字段无法正确反序列化,因为MappingMongoConverter缺少java.time类的转换器.在Spring 4中,我找到了带有不同转…

win7(64位)php5.5-Apache2.4-mysql5.6环境安装

win7&#xff08;64位&#xff09;安装搭建 php-5.5.10 apache2.4.7 mysql-5.6.16 环境 工具/原料 php-5.5.10-Win32-VC11-x64.zip 下载地址: http://windows.php.net/download/ httpd-2.4.7-win64-VC11.zip 下载地址: http://www.apachelounge.com/download/ mysql-5.6.16-win…