[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 因为题 ...
随机推荐
- C语言中const的正确用法
今天看<Linux内核编程>(Claudia Salzberg Podriguez等著)时,文中(p39)有一个错误,就是关于const的用法. 原文中举例说明:const int *x中 ...
- C语言细节——献给入门者(三)
C语言细节——献给入门者(三) >>主题:关于强制类型转换 先来瞎扯下强制类型转换,c语言有很多数据类型,long,short,int,float,double,bool,char等等.当 ...
- web过滤器中获取请求的参数(content-type:multipart/form-data)
1.前言: 1.1 在使用springMVC中,需要在过滤器中获取请求中的参数token,根据token判断请求是否合法: 1.2 通过requst.getParameter(key)方法获得参数值; ...
- JS中先有Object还是先有Function?
一张图:
- 使用Eclipse创建maven项目
前提:Eclipse中安装了maven插件,或者Eclipse版本在Mars以上(自集成maven) 1.new project --maven project 2.默认点击next 3.选择构建类型 ...
- USACO2016Splitting the Field分割牧场
Description FJ的N头奶牛分别位于他二维的牧场的不同位置.FJ想用一个矩形栅栏围住这些牛(牛可以在栅栏边上),并使这个栅栏尽可能小.这个栅栏的边与x轴或y轴平行.不幸的是,FJ上个季度的牛 ...
- 【ros bug】rplidar.launch is neither a launch file in package...
解决 :cd catkin_ws $ source devel/setup.bash
- 转帖-[教程] Win7精简教程(简易中度)2016年8月-0day
[教程] Win7精简教程(简易中度)2016年8月 0day 发表于 2016-8-19 16:08:41 https://www.itsk.com/thread-370260-1-1.html ...
- U-Boot
U-Boot U-Boot,全称 Universal Boot Loader,是遵循GPL条款的开放源码项目.从FADSROM.8xxROM.PPCBOOT逐步发展演化而来.其源码目录.编译形式与Li ...
- <转>浏览器内核分类
浏览器的种类成千上百,但所基于的内核,却没有几个.目前主流的浏览器内核主要为以下四种: 一.Trident内核,代表产品Internet Explorer说起Trident,很多人都会感到陌生,但提起 ...