Codeforces Round #603 (Div. 2) C. Everyone is a Winner! 二分
C. Everyone is a Winner!
On the well-known testing system MathForces, a draw of n rating units is arranged. The rating will be distributed according to the following algorithm: if k participants take part in this event, then the n rating is evenly distributed between them and rounded to the nearest lower integer, At the end of the drawing, an unused rating may remain — it is not given to any of the participants.
For example, if n=5 and k=3, then each participant will recieve an 1 rating unit, and also 2 rating units will remain unused. If n=5, and k=6, then none of the participants will increase their rating.
Vasya participates in this rating draw but does not have information on the total number of participants in this event. Therefore, he wants to know what different values of the rating increment are possible to get as a result of this draw and asks you for help.
For example, if n=5, then the answer is equal to the sequence 0,1,2,5. Each of the sequence values (and only them) can be obtained as ⌊n/k⌋ for some positive integer k (where ⌊x⌋ is the value of x rounded down): 0=⌊5/7⌋, 1=⌊5/5⌋, 2=⌊5/2⌋, 5=⌊5/1⌋.
Write a program that, for a given n, finds a sequence of all possible rating increments.
Input
The first line contains integer number t (1≤t≤10) — the number of test cases in the input. Then t test cases follow.
Each line contains an integer n (1≤n≤109) — the total number of the rating units being drawn.
Output
Output the answers for each of t test cases. Each answer should be contained in two lines.
In the first line print a single integer m — the number of different rating increment values that Vasya can get.
In the following line print m integers in ascending order — the values of possible rating increments.
Example
input
4
5
11
1
3
output
4
0 1 2 5
6
0 1 2 3 5 11
2
0 1
3
0 1 3
题意
一共有n块钱,k个人[n/k]块钱,向下取整。
现在给你n块钱,你不知道有多少人,输出每个人可能获得多少钱
题解
视频题解 https://www.bilibili.com/video/av77514280/
随着k人数的增加,钱的数量肯定是不断下降的,那么我们可以二分出每一个下降的区间,然后就能输出答案了
代码
#include<bits/stdc++.h>
using namespace std;
long long n;
void solve(){
vector<long long>Ans;
cin>>n;
int x = 1;
Ans.push_back(n);
while(x<=n){
long long l = x,r = n+1,ans=l;
long long d = n/l;
while(l<=r){
long long mid=(l+r)/2;
if(n/mid==d){
l=mid+1;
ans=mid;
}else{
r=mid-1;
}
}
Ans.push_back(n/(ans+1));
x=ans+1;
}
sort(Ans.begin(),Ans.end());
Ans.erase(unique(Ans.begin(),Ans.end()),Ans.end());
cout<<Ans.size()<<endl;
for(int i=0;i<Ans.size();i++){
cout<<Ans[i]<<" ";
}
cout<<endl;
}
int main(){
int t;
cin>>t;
while(t--){
solve();
}
}
Codeforces Round #603 (Div. 2) C. Everyone is a Winner! 二分的更多相关文章
- Codeforces Round #603 (Div. 2) C. Everyone is a Winner! (数学)
链接: https://codeforces.com/contest/1263/problem/C 题意: On the well-known testing system MathForces, a ...
- Codeforces Round #603 (Div. 2) C.Everyone is A Winner!
tag里有二分,非常的神奇,我用暴力做的,等下去看看二分的题解 但是那个数组的大小是我瞎开的,但是居然没有问题233 #include <cstdio> #include <cmat ...
- Codeforces Round #603 (Div. 2) A. Sweet Problem(水.......没做出来)+C题
Codeforces Round #603 (Div. 2) A. Sweet Problem A. Sweet Problem time limit per test 1 second memory ...
- Codeforces Round #603 (Div. 2) E. Editor 线段树
E. Editor The development of a text editor is a hard problem. You need to implement an extra module ...
- Codeforces Round #603 (Div. 2) E. Editor(线段树)
链接: https://codeforces.com/contest/1263/problem/E 题意: The development of a text editor is a hard pro ...
- Codeforces Round #603 (Div. 2) D. Secret Passwords 并查集
D. Secret Passwords One unknown hacker wants to get the admin's password of AtForces testing system, ...
- Codeforces Round #603 (Div. 2) D. Secret Passwords(并查集)
链接: https://codeforces.com/contest/1263/problem/D 题意: One unknown hacker wants to get the admin's pa ...
- Codeforces Round #603 (Div. 2) B. PIN Codes
链接: https://codeforces.com/contest/1263/problem/B 题意: A PIN code is a string that consists of exactl ...
- Codeforces Round #603 (Div. 2) A. Sweet Problem(数学)
链接: https://codeforces.com/contest/1263/problem/A 题意: You have three piles of candies: red, green an ...
随机推荐
- CSS基础属性介绍
css属性分类介绍 css属性分类介绍 CSS分类目录 文本/字体/颜色 文本相关 字体相关 颜色相关 背景相关 大小/布局 大小属性 margin 外边距 padding 内边距 border 边框 ...
- JS---DOM---节点的概念,属性,和获取相关的节点
回顾概念 文档: document 元素: 页面中所有的标签, 元素---element, 标签----元素---对象 节点: 页面中所有的内容(标签,属性,文本(文字,换行,空格,回车))---- ...
- U盘启动安装系统之旅----记录自己的第一次操作
网上也有很多装系统的教程,这篇主要是对自己第一次装系统的一个记录,很惭愧,现在才尝试第一次用U盘启动装系统.经常有人说,系统都不会装,就别说搞这行的.当你会了,你就会觉得其实它真的是一件很简单的事情. ...
- MySQL数据库~~~~~存储引擎
1. InnoDB InnoDB引擎特点: 1.支持事务:支持4个事务隔离界别,支持多版本读. 2.行级锁定(更新时一般是锁定当前行):通过索引实现,全表扫描仍然会是表锁,注意间隙锁的影响. 3.读写 ...
- javascript随机数发现的一个parseInt函数的问题
前几天想伪造一些数据,用到了随机数,没有自己写,便在网上找了一下,找到了这篇文章:https://www.cnblogs.com/starof/p/4988516.html .之后测试了一下,发现了一 ...
- 大数据基础--R语言(刘鹏《大数据》课后习题答案)
1.R语言是解释性语言还是编译性语言? 解释性语言 2.简述R语言的基本功能. R语言是一套完整的数据处理.计算和制图软件系统,主要包括以下功能: (1)数据存储和处理功能,丰富的数据读取与存 ...
- js中获取当前url路径
可以使用 window.location 获取当前页面url.以下是一些简单应用. <script> $(function(){ // 返回 web 主机的域名,如:http://127. ...
- EEPROM的概念接口类型及软件实例
基本概念 EEPROM的全称是“电可擦除可编程只读存储器”,即Electrically Erasable Programmable Read-Only Memory.是相对于紫外擦除的rom来讲的.但 ...
- Spring Cloud Gateway、并发编程等等
2019年 JUC线程池服务ExecutorService接口实现源码分析 Github Page:http://www.throwable.club/2019/07/27/java-concurre ...
- 学习使人快乐9--eclipse常用快捷键总结
Ctrl + F11 按上次方式执行Ctrl + Shift + / 加上注释/**/Ctrl + Shift + \ 取消注释/**/Ctrl + / 加上或消除行注释Ctrl + D 删除当前行 ...