[Codeforces Round #275 (Div. 2)]B - Friends and Presents
最近一直在做 codeforces ,总觉得已经刷不动 BZOJ 了? ——真是弱喵
你看连 Div.2 的 B 题都要谢谢题解,不是闲就是傻
显然我没那么闲 ╮(╯_╰)╭
我觉得这题的想法挺妙的~
大意是你需要分别给 a 和 b cnt1 和 cnt2 个数字
但是 a 不要被 x 整除的数 ,as well as,b 不要被 y 整除的数
然后求需要给的最大数的最小值——
最值的最值?那不是典型的二分吗?
但是——坑爹的英文题导致我完全没有意识到这一点……
二分答案 v ,因为 a 不要被 x 整除的数,所以我们可以
先把 被 x 整除的数但不被 y 整除 给b,
再把 被 y 整除的数但不被 x 整除 给a。
然后剔除所有被 a*b 整除的数
剩下的数与 a 和 b 都互素,判一下能不能好好的分配就可以了
代码很好写哦
#include <cstdio>
#include <cstring> int cnt1, cnt2, x, y;
inline int getint();
inline void putint(long long);
inline bool check(long long); int main()
{
long long l, r, m; cnt1=getint(), cnt2=getint(), x=getint(), y=getint();
l=, r=0x0FFFFFFFFFFFFFFFLL;
while (l+<r)
{
m=(l+r)>>;
if (check(m)) r=m;
else l=m;
}
putint(r); return ;
}
inline int getint()
{
register int num=;
register char ch;
do ch=getchar(); while (ch<'' || ch>'');
do num=num*+ch-'', ch=getchar(); while (ch>='' && ch<='');
return num;
}
inline void putint(long long num)
{
char stack[];
register int top=;
for ( ;num;num/=) stack[++top]=num%+'';
for ( ;top;top--) putchar(stack[top]);
putchar('\n');
}
inline bool check(long long num)
{
long long u=num/x, v=num/y, w=num/(x*y);
long long c1=cnt1, c2=cnt2;
c1-=v-w; c2-=u-w;
if (c1<) c1=; if (c2<) c2=;
if (c1+c2>num-u-v+w) return false;
return true;
}
本傻英文 SB 系列
[Codeforces Round #275 (Div. 2)]B - Friends and Presents的更多相关文章
- Codeforces Round #275 (Div. 2) B. Friends and Presents 二分+数学
8493833 2014-10-31 08:41:26 njczy2010 B - Friends and Presents G ...
- Codeforces Round #275 (Div. 2) C - Diverse Permutation (构造)
题目链接:Codeforces Round #275 (Div. 2) C - Diverse Permutation 题意:一串排列1~n.求一个序列当中相邻两项差的绝对值的个数(指绝对值不同的个数 ...
- Codeforces Round #275 (Div. 1)A. Diverse Permutation 构造
Codeforces Round #275 (Div. 1)A. Diverse Permutation Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 ht ...
- 构造 Codeforces Round #275 (Div. 2) C. Diverse Permutation
题目传送门 /* 构造:首先先选好k个不同的值,从1到k,按要求把数字放好,其余的随便放.因为是绝对差值,从n开始一下一上, 这样保证不会超出边界并且以防其余的数相邻绝对值差>k */ /*** ...
- Codeforces Round #275 (Div. 2) C
题目传送门:http://codeforces.com/contest/483/problem/C 题意分析:题目意思没啥好说的. 去搞排列列举必须TLE.那么就想到构造. 1.n.2.n-1.3.n ...
- Codeforces Round #275(Div. 2)-C. Diverse Permutation
http://codeforces.com/contest/483/problem/C C. Diverse Permutation time limit per test 1 second memo ...
- Codeforces Round #275 (Div. 2)-A. Counterexample
http://codeforces.com/contest/483/problem/A A. Counterexample time limit per test 1 second memory li ...
- Codeforces Round #275 Div.1 B Interesting Array --线段树
题意: 构造一个序列,满足m个形如:[l,r,c] 的条件. [l,r,c]表示[l,r]中的元素按位与(&)的和为c. 解法: 线段树维护,sum[rt]表示要满足到现在为止的条件时该子树的 ...
- Codeforces Round #275 (Div. 2)
A. Counterexample 题意:给出l,r,找出使得满足l<a<b<c<r,同时满足a,b的最大公约数为1,b,c的最大公约数为1,且a,b的最大公约数不为1 因为题 ...
随机推荐
- 笔记本_thinkpad_e440
ZC: 这是我现在手上 公司工作的笔记本 1.进入 BIOS --> Enter键 2.背面信息 笔记本序列号(用于查找 驱动等) (ZC: 这个是 ThinkPad E440 的信息) 序号为 ...
- 手势抽取过程&代码复用
public abstract class BaseSetupActivity extends Activity { private GestureDetector gestureDetector; ...
- 查看rpm和war包内容
解压rpm包的内容:(没有安装,就像解压tgz包一样rpm包)rpm2cpio *.rpm | cpio -div 解压war包的内容: jar -xvf project.war 解压到当前目录
- Linux nginx日志按天分割实例
Linux nginx日志按天分割实例 nginx的日志有个小缺点,日志文件一直就是一个,不会自动地进行切割,如果访问量很大的话,将导致日志文件非常大,不便于管理这就需要我们自己来实现了,按日期每 ...
- java mail发送邮件
最近做了自动发送邮件功能,带附件的:需要的jar包有
- laravel 控制器里 redirect url地址传两个参数的方法
public function red_search() { $url=Request::all(); return redirect('search/'.$url['category'].'/'.$ ...
- java length属性 length()方法 size()方法
length是属性,一般用来说明数组的长度 length()是方法,针对字符串String说的,用来求数组中某个元素的字符串长度 String str={"adfasf",&quo ...
- java_easyui体系之目录 [转]
摘要:简单介绍form的提交方式.与validatebox的结合使用. 一:form简介 Easyui中的form有两种提交方式.结合自己新添加的一种ajax提交方式.本文简单说明form的三种提交方 ...
- CodeForces #100 C 贪心+STL
题目链接:CodeForces #100 C 题意:现在给出n个snowball的半径,3个半径严格递增或递减的snowball,可以组成1个snowmen.问最多能组成多少个snowmen.并且按 ...
- Windows下搭建Git开发环境
Windows下搭建Git开发环境主要有以下三种方法: 1,VS,vs2013和vs2015中已经集成了git插件了 2,msysGit+TortoiseGit 3,msysGit+SourceTre ...