CF-517C-思维/math
http://codeforces.com/contest/1072/problem/C
题目大意是给出两个数a,b ,找出若干个数p,使得 SUM{p}<=a ,找出若干个数q使得SUM{q}<=b ,还要保证找到的p和q都是不一样的数,问|p|+|q|最大是多少。也就是要使得找的数尽可能的多。
如果不是分成两个数a,b的话其实很简单,答案就是 1,2,3.....x ,x是使得(x*(x+1)) <= n成立的最大值。如果拆成两个数,那么这个最大值显然不会比n大。如果能看出这点来就好了,这样我们把
数据范围变成了sqrt(MAXA+MAXB)了。先找到这个x,其实答案就是x ,下面证明下。
已知的是x*(x+1)/2<=n=a+b (1)有一个有趣的知识是用[1,n]内的数每个数最多使用一次,一定能组成[1,(1+n)*n/2]的所有数,首先能组成[1,n],然后把n提出来与前面所有的数依次累加得到[n+1,2n-1],然后把最后两个数提出来与前面的数依次累加得到[2n,3n-3]......由于n=a+b,所以a要么是大于 x*(x+1)/2,这样的话答案就是x,要么a<=x*(x+1)/2,那么a肯定能用一部分数完全组成,那么剩下的数的和就是 x*(x+1)/2-a <=b (由(1)得到) ,所以b一定能装下所有的剩下的数。
#include<iostream>
#include<cstring>
#include<cstdio>
#include<vector>
using namespace std;
#define LL long long
LL x,s,a,b;
bool vis[];
void f(int n){
vector<int>g;
for(int i=x;i>=;--i){
if(!vis[i]&&i<=n){
vis[i]=;
n-=i;
g.push_back(i);
}
}
cout<<g.size()<<endl;
for(int i=;i<g.size();++i) printf("%d%c",g[i],i==g.size()-?'\n':' ');
}
int main(){
cin>>a>>b;
s=a+b;
LL l=,r=;
while(l<r){
LL mid=r-(r-l)/;
if(mid*(mid+)<=s*){
l=mid;
}
else{
r=mid-;
}
}
x=l;
f(a),f(b);
return ;
}
CF-517C-思维/math的更多相关文章
- cf 814C 思维
http://codeforces.com/contest/814/problem/C 给定一个字符串s,长度小于1500,进行q次询问q<=20w,每次询问输入一个m和一个字符c,求将最多m个 ...
- CodeForces 303B Rectangle Puzzle II
题意: 给定一个靠着坐标轴长为n,宽为m的矩形和 矩形中的一个点A,求在这个矩形内部一个 长宽比为a/b的小矩形,使这个小矩形的长宽尽量大使点A在小矩形内部,并且点A尽量靠近小矩形的中心 CF的思维题 ...
- Spark操作hbase
于Spark它是一个计算框架,于Spark环境,不仅支持单个文件操作,HDFS档,同时也可以使用Spark对Hbase操作. 从企业的数据源HBase取出.这涉及阅读hbase数据,在本文中尽快为了尽 ...
- 『CSP2019-S 第二轮退役记』
Day0 到杭州的时候是下午,休息了一下就吃完饭了. 晚上的时候闲着没事复习了一下几个不太熟的数论板子,\(\mathrm{exgcd}\),\(\mathrm{ExCRT}\),\(\mathrm{ ...
- CF思维联系--CodeForces - 218C E - Ice Skating (并查集)
题目地址:24道CF的DIv2 CD题有兴趣可以做一下. ACM思维题训练集合 Bajtek is learning to skate on ice. He's a beginner, so his ...
- cf A. Inna and Pink Pony(思维题)
题目:http://codeforces.com/contest/374/problem/A 题意:求到达边界的最小步数.. 刚开始以为是 bfs,不过数据10^6太大了,肯定不是... 一个思维题, ...
- Jam's math problem(思维)
Jam's math problem Submit Status Practice HDU 5615 Description Jam has a math problem. He just lea ...
- 【Codeforces】CF 911 D. Inversion Counting(逆序对+思维)
题目 传送门:QWQ 分析 思维要求比较高. 首先我们要把原图的逆序对q算出来. 这个树状数组或归并排序都ok(树状数组不用离散化好评) 那么翻转$[l,r]$中的数怎么做呢? 暴力过不了,我试过了. ...
- CF 914 D. Bash and a Tough Math Puzzle
D. Bash and a Tough Math Puzzle http://codeforces.com/contest/914/problem/D 题意: 单点修改,每次询问一段l~r区间能否去掉 ...
- CF D. Fair(思维+DFS)
http://codeforces.com/contest/987/problem/D 题目大概: 给出一个n个城镇m条边的图,给出每个城镇拥有的特产(可能多个城镇有相同特产).有k种不同特产. 要求 ...
随机推荐
- HDU 5583 Kingdom of Black and White(暴力)
http://acm.hdu.edu.cn/showproblem.php?pid=5583 题意: 给出一个01串,现在对这串进行分组,连续相同的就分为一组,如果该组内有x个数,那么就对答案贡献x* ...
- BOM - 浏览器API
1,javascript 组成部分: 1.ECMAscript(核心标准): 定义了基本的语法,比如:if for 数组 字符串 ... 2.BOM : 浏览器对象模型(Browser ...
- URL重定向及跳转漏洞
URL跳转漏洞 URL 跳转漏洞是指后台服务器在告知浏览器跳转时,未对客户端传入的重定向地址进行合法性校验,导致用户浏览器跳转到钓鱼页面的一种漏洞. 使用场景 现在 Web 登录很多都接入了QQ ...
- markdown一些网站
1.https://stackedit.io/editor 2.https://github.com/bioinformatist/LncPipeReporter 3.
- 【BZOJ】3214: [Zjoi2013]丽洁体
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3214 字符串长度最大不超过$5$直接$HASH$起来 首先在$T$中考虑找到最前的一个包含 ...
- hdu 3861 The King’s Problem trajan缩点+二分图匹配
The King’s Problem Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Other ...
- mysql / sqlserver / oracle 常见数据库分页
空闲时间里用着mysql学习开发测试平台和测试用具, 在公司里将可用的测试平台部署,将数据库换成sqlserver 巴望着能去用oracle的公司 mysql中的分页 limit是mysql的语法se ...
- JNI开发-Java从C/C++获取List集合对象
NI开发有时需要Java从C/C++获取List对象,此篇主要讲解Java从C/C++获取List<Student>返回值; 1. 定义com.niubashaoye.simple.jni ...
- 学习笔记24—win10环境下python版libsvm的安装
1.前言 由于毕业设计需要用到libsvm,所以最近专心于配置libsvm,曾经尝试过在matlab中安装,但是没有成功.最终在Python环境中完成安装. 2.LIBSVM介绍 LIBSVM 是台湾 ...
- SQL service 中的 ”输入SQL命令窗口“ 打开了 “属性界面” 回到 ”输入SQL命令窗口“
输入SQL命令窗口点击上面的菜单栏中的 “窗口”