Problem A: qwb与支教
来源:互联网 发布:关于网络组建的论文 编辑:程序博客网 时间:2024/05/09 13:41
Description
qwb同时也是是之江学院的志愿者,暑期要前往周边地区支教,为了提高小学生的数学水平。她把小学生排成一排,从左至右从1开始依次往上报数。
玩完一轮后,他发现这个游戏太简单了。于是他选了3个不同的数x,y,z;从1依次往上开始报数,遇到x的倍数、y的倍数或z的倍数就跳过。如果x=2,y=3,z=5;第一名小学生报1,第2名得跳过2、3、4、5、6,报7;第3名得跳过8、9、10,报11。
那么问题来了,请你来计算,第N名学生报的数字是多少?
Input
多组测试数据,处理到文件结束。(测试数据数量<=8000)
每个测试例一行,每行有四个整数x,y,z,N。( 2≤x,y,z≤107,1≤N≤1017)。
Output
对于每个测试例,输出第N名学生所报的数字,每个报数占一行。
Sample Input
2 3 5 26 2 4 10000
Sample Output
719999
二分?!
附上杭电曹大神的代码。
哭,这场比赛什么题目都T。
#include<bits/stdc++.h>using namespace std;const int inf=(1<<30)-1;const int maxn=100010;#define REP(i,n) for(int i=(0);i<(n);i++)#define FOR(i,j,n) for(int i=(j);i<=(n);i++)typedef long long ll;ll a[3];ll b[3];ll t;ll n; ll lcm(ll x,ll y) {return x/__gcd(x,y)*y;}ll check(ll x){ll tt=x;for(int i=0;i<3;i++) tt-=x/a[i];for(int i=0;i<3;i++) tt+=x/b[i];tt-=x/t;return tt;}int main(){while(~scanf("%lld%lld%lld%lld",&a[0],&a[1],&a[2],&n)){b[0]=lcm(a[0],a[1]);b[1]=lcm(a[0],a[2]);b[2]=lcm(a[1],a[2]);t=lcm(b[1],b[2]);ll L=0,R=n*10;ll ans=0;while(L<=R){ll M=(L+R)>>1;if(check(M)>=n) {R=M-1;ans=M;}else L=M+1;}printf("%lld\n",ans);}return 0;}
阅读全文
0 0
- Problem A: qwb与支教
- qwb与支教 二分
- qwb与支教 二分加容斥
- 2017年第0届浙江工业大学之江学院程序设计竞赛决赛 Problem A: qwb与支教(容斥+二分)
- ZJCOJ:qwb与支教(二分)
- qwb与支教 【容斥】+【二分枚举】
- ZJCoj qwb与支教 ( 容斥+二分
- 之江学院第0届校赛决赛 A-qwb与支教(容斥+二分)
- 浙江工业大学之江学院2017年第0届达内杯A题——qwb与支教
- 2017年第0届浙江工业大学之江学院程序设计竞赛决赛 A: qwb与支教 [容斥]【数学】
- 2017年第0届浙江工业大学之江学院程序设计竞赛决赛—A qwb与支教
- qwb与支教(二分+容斥原理)
- Problem B: qwb与矩阵
- 2017年第0届浙江工业大学之江学院程序设计竞赛决赛 A.qwb与支教【二分+简单容斥】
- 2017年第0届之江学院程序设计竞赛决赛 A: qwb与支教(容斥+重坑二分)
- 2017之江学院校赛 qwb与支教 容斥+二分
- 之江学院第0届校赛(决赛) qwb与支教 (二分+容斥原理)
- 江学院-Problem K: qwb与小数
- java基本数据类型和引用类型
- 动词后加to do 和 doing的记忆口诀
- Listener 监听器
- ubuntu下apache2 安装 配置 卸载 CGI设置 SSL设置
- vue-cli的webpack模板项目配置文件的理解
- Problem A: qwb与支教
- 蓝桥-ALGO-10-集合运算
- ubuntu 16.04上ns2+nam+GT-ITM安装笔记
- ABAP EXCEL文件导入ABAP内表中
- 生产问题排查与程序设计的一些思考
- 【记录】Ubuntu下简单的软件安装-aptitude安装,samba安装,terminator软件
- 面向对象-代码块的概述和分类
- linux 源码安装mysql 5.5
- c++中求绝对素数