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种不同特产. 要求 ...
随机推荐
- 利用Python 脚本生成 .h5 文件 代码
利用Python 脚本生成 .h5 文件 import os, json, argparse from threading import Thread from Queue import Queue ...
- Unity3D学习笔记(三十):Lua
Lua:是一个轻量级的脚本语句.不需要编译,直接运行的语言. 环境配置: 执行Lua有两种方式: 1.交互式编程(输入后能立即看到效果) 2.脚本式编程:运行lua文件,.lua为文件后缀 ...
- js实现网站首页分享滑块
<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...
- 【Django】【二】模板
1. Django-bootstrap3 guest>python -m pip install django-bootstrap3 [代码] settings.py ""& ...
- vue--v-model表单控件绑定
原文链接:https://www.cnblogs.com/dyfbk/p/6868350.html v-model 指令在表单控件元素上创建双向数据绑定,下面一一进行示例解释. 1.v-model 双 ...
- 【bzoj】4538: [Hnoi2016]网络
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=4538 维护一个数据结构支持对于一颗树的操作,需要支持: 1.对于树上的一条路径上的每个点上 ...
- python redis 操作
1.String 操作 redis中的String在在内存中按照一个name对应一个value来存储 set() #在Redis中设置值,默认不存在则创建,存在则修改 r.set('name', 'z ...
- 使用Hexo搭建一个简单的博客(二)
昨天想着用Hexo和github搭一个自己简单的博客,记录一下自己踩过的坑,具体的流程就不重复了,主要参考了一下几篇文章 GitHub+Hexo 搭建个人网站详细教程 使用Hexo+Github一步步 ...
- 使用JDBC从数据库中查询数据的方法
* ResultSet 结果集:封装了使用JDBC 进行查询的结果 * 1. 调用Statement 对象的 executeQuery(sql) 方法可以得到结果集 * 2. ResultSet 返回 ...
- tensorflow example1
用tensorflow实现J(w)=w**2-10*w+25的微分结果 import numpy as npimport tensorflow as tf w=tf.Variable(0,dtype= ...