Bzoj 2393: Cirno的完美算数教室 容斥原理,深搜
2393: Cirno的完美算数教室
Time Limit: 10 Sec  Memory Limit: 128 MB
Submit: 287  Solved: 175
[Submit][Status][Discuss]
Description
Input
Output
Sample Input
Sample Output
HINT
Source
#include<bits/stdc++.h>
using namespace std;
#define LL unsigned long long
#define MAXN 1100
LL cc[MAXN],L,R,lc,sum;
bool vis[MAXN];
LL read()
{
LL s=,fh=;char ch=getchar();
while(ch<''||ch>''){if(ch=='-')fh=-;ch=getchar();}
while(ch>=''&&ch<=''){s=s*+(ch-'');ch=getchar();}
return s*fh;
}
LL Gcd(LL aa,LL bb){if(bb==)return aa;else return Gcd(bb,aa%bb);}
void dfs(LL k)
{
if(k>R)return;
if(k>)cc[++lc]=k;
dfs(k*+);
dfs(k*+);
}
void dfs(LL ii,LL x,LL y,LL gs,LL lcm)
{
LL i,LCM;
if(x<lcm&&y<lcm)return;
if(gs>)
{
if(gs%!=)sum+=((LL)(y/lcm)-(LL)(x/lcm));
else sum-=((LL)(y/lcm)-(LL)(x/lcm));
}
if((ii+)>lc)return;
for(i=ii+;i<=lc;i++)
{
if(vis[i]==false)
{
vis[i]=true;
LCM=lcm;
lcm=(lcm*cc[i])/Gcd(lcm,cc[i]);
if(gs==)lcm=cc[i];
dfs(i,x,y,gs+,lcm);
lcm=LCM;
vis[i]=false;
}
}
}
LL calc(LL L,LL R)
{
sum=;
memset(vis,false,sizeof(vis));
dfs(,L-,R,,);
return sum;
}
int main()
{
LL len,i;
L=read();R=read();
lc=;
dfs();
sort(cc+,cc+lc+);
len=unique(cc+,cc+lc+)-(cc+);
lc=len;
for(i=;i<=lc/;i++)swap(cc[i],cc[lc-i+]);
printf("%lld",calc(L,R));
return ;
}
Bzoj 2393: Cirno的完美算数教室 容斥原理,深搜的更多相关文章
- [bzoj 2393] Cirno的完美算数教室 (容斥原理+dfs剪枝)
		题目描述 CirnoCirnoCirno发现了一种bakabakabaka数,这种数呢只含有222和999两种数字 现在CirnoCirnoCirno想知道[L,R][L,R][L,R]中有多少个数能 ... 
- 【BZOJ-1853&2393】幸运数字&Cirno的完美算数教室       容斥原理 + 爆搜 + 剪枝
		1853: [Scoi2010]幸运数字 Time Limit: 2 Sec Memory Limit: 64 MBSubmit: 1817 Solved: 665[Submit][Status] ... 
- bzoj 2393 Cirno的完美算数教室(容斥原理+搜索)
		[题意] 定义C数为只包含数字2和9的数,求[L,R]内能被C数整除的个数. [思路] Dfs预处理出C数,并去除其中倍数的情况. Dfs搜索出现情况,奇数加,偶数减,当数值大于R时剪枝. [代码] ... 
- ●BZOJ 2393 Cirno的完美算数教室
		题链: http://www.lydsy.com/JudgeOnline/problem.php?id=2393 题解: 容斥原理,暴力搜索,剪枝...和 [Scoi2010 幸运数字] 一样的(只是 ... 
- BZOJ 2393 Cirno的完美算数教室
		就是爆搜嘛. 先从大到小排个序能减去dfs树上很大的一部分.这个技巧要掌握. #include<iostream> #include<cstdio> #include<c ... 
- bzoj 1853: [Scoi2010]幸运数字&&2393: Cirno的完美算数教室【容斥原理】
		翻了一些blog,只有我用状压预处理嘛2333,.把二进制位的0当成6,1当成8就行啦.(2393是2和9 然后\( dfs \)容斥,加上一个数的\( lcm \),减去两个数的\( lcm \), ... 
- BZOJ2393: Cirno的完美算数教室
		2393: Cirno的完美算数教室 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 138 Solved: 83[Submit][Status] D ... 
- 【bzoj2393】【Cirno的完美算数教室】容斥原理的剪枝应用
		(上不了p站我要死了,侵权度娘背锅) 在用容斥定理时,常常会用到dfs的形式,如果枚举完所有的情况可能会超时,其剪枝的优化很是重要. Description ~Cirno发现了一种baka数,这种数呢 ... 
- [BZOJ2393] Cirno的完美算数教室(dfs+容斥原理)
		传送门 先通过dfs预处理出来所有只有2和9的数,也就大概2000多个. 想在[L,R]中找到是这些数的倍数的数,可以通过容斥原理 那么如果a % b == 0,那么便可以把 a 去掉,因为 b 的倍 ... 
随机推荐
- Lua数组排序
			代码 network = { {name = "grauna", IP = "210.26.30.34"}, {name = "arraial&quo ... 
- (转)iOS中3种正则表达式的使用与比较
			.利用NSPredicate(谓词)匹配 例如匹配有效邮箱: NSString *email = @“nijino_saki@.com”: NSString *regex = @"[A-Z0 ... 
- Percona XtraBackup 备份原理
			前言 Percona XtraBackup(简称PXB)是 Percona 公司开发的一个用于 MySQL 数据库物理热备的备份工具,支持 MySQl(Oracle).Percona Server 和 ... 
- js点击   密码输入框密码显示隐藏
			很多密码框都有个眼睛标记,点击能显示密码.原理就是点击切换password为text等显示 下面上代码 <!DOCTYPE html> <html> <head> ... 
- C++相关资源
			http://www.cnblogs.com/xi52qian/p/4186983.html语言ISO/IEC JTC1/SC22/WG21 - The C++ Standards Committee ... 
- hdu 1800 Flying to the Mars
			Flying to the Mars 题意:找出题给的最少的递增序列(严格递增)的个数,其中序列中每个数字不多于30位:序列长度不长于3000: input: 4 (n) 10 20 30 04 ou ... 
- c#开发Mongo笔记第一篇
			现在开发的这个项目要用mongo数据库开发,发现网上的这方面教程还是比较少的,只能边看官方说明边进行开发,再开发过程中写下笔记,也算上是一个总结吧. 我开发使用的是vs2013了,驱动用的是最新的1. ... 
- iOS面试题16719-b
			1. 反转二叉树,不用递归 /*** Definition for a binary tree node.* public class TreeNode {* int val;* Tr ... 
- MATLAB conv2卷积的实现
			MATLAB conv2卷积的实现 二维卷积的算法原理比较简单,参考任意一本数字信号处理的书籍,而matlab的conv2函数的滤波有个形状参数,用下面的一张图很能说明问题: 这里给出一种最原始的实现 ... 
- 完美卸载SQL Server 2008的方案
			转自完美卸载SQL Server 2008的方案 针对SQL数据库卸载不完全的现象,做了如下总结: 1,控制面板 卸载 首先,打开控制面板,按照"安装时间"进行排序,卸载S ... 
