二分法 codevs 1432 总数统计
codevs 1432 总数统计
给出n个数,统计两两之和小于k的方案数之和。
第一行一个数n,表示数字的个数;
第二行到第n + 1行,每行一个不超过2,000,000,000的数k;
第n + 2行一个数m,表示m个问题;
第n + 3行到第n + m + 2行,每行一个数m,询问表示n中两两组合不超过m的组
合的个数;
输出m行,每行对应一个答案
3
1
2
3
2
2
3
0
1
30%的数据1 ≤ n ≤ 100, 1 ≤ m ≤ 50, k ≤ 2000;
100%的数据 1 ≤ n ≤ 10000, 1 ≤ m ≤ 100, k ≤ 2,000,000,000;
/*之前写了个读入优化,怎么都是得30分,改成cin后,直接就过了。
做法:二分:先将输入的数字排序,然后从前面向后循环,二分后面的区间,找出si+sj<k的最大值,那么i+1--j的数都满足要求,枚举每一个i,累加即可
*/
#define N 10010
#include<iostream>
using namespace std;
#include<cstdio>
#include<algorithm>
long long n,m;
long long k,con[N];
long long find_ans(int x)
{
int l=x+1,r=n,mid;
while(l<=r)
{
mid=((l+r)>>1);
if(con[x]+con[mid]>k)
r=mid-1;
else l=mid+1;
}
return l-x-1;
}
int main()
{
cin>>n;
for(int i=1;i<=n;++i)
cin>>con[i];
sort(con+1,con+1+n);
cin>>m;
long long ans;
while(m--)
{
ans=0;
cin>>k;
for(int i=1;i<=n;++i)
ans+=find_ans(i);
cout<<ans<<endl;
}
return 0;
}
二分法 codevs 1432 总数统计的更多相关文章
- codevs 1432 总数统计
1432 总数统计 时间限制: 1 s空间限制: 128000 KB题目等级 : 钻石 Diamond 题目描述 Description 给出n个数,统计两两之和小于k的方案数之和. 输入描述 I ...
- Splay树-Codevs 1296 营业额统计
Codevs 1296 营业额统计 题目描述 Description Tiger最近被公司升任为营业部经理,他上任后接受公司交给的第一项任务便是统计并分析公司成立以来的营业情况. Tiger拿出了公司 ...
- CJOJ 1308 【HNOI 2002 】营业额统计 / CodeVS 1296 营业额统计(STL,二分)
CJOJ 1308 [HNOI 2002 ]营业额统计 / CodeVS 1296 营业额统计(STL,二分) Description Tiger最近被公司升任为营业部经理,他上任后接受公司交给的第一 ...
- spark-sql分组去重总数统计uv
SparkConf sparkConf = new SparkConf(); sparkConf .setAppName("Internal_Func") .setMaster(& ...
- [codevs 1482]路线统计(矩阵乘法)
题目:http://codevs.cn/problem/1482/ 分析:很像“经过K条边的最短路径条数”.但有所不同,那就是不是边数固定,而是路径总长度固定.看似不能用矩阵乘法了……但注意到每条边的 ...
- CodeVS 1296 营业额统计
1296 营业额统计2002年 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 大师 Master 题目描述 Description Tiger最近被公司升任为营业部经理, ...
- Codevs 1482 路线统计(矩阵乘法)
1482 路线统计 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 钻石 Diamond 题目描述 Description N个节点的有向图, 求从start到finish刚好经过时 ...
- codevs 1126 数字统计 2010年NOIP全国联赛普及组 x
题目描述 Description 请统计某个给定范围[L, R]的所有整数中,数字2出现的次数. 比如给定范围[2, 22],数字2在数2中出现了1次,在数12中出现1次,在数20中出现1次,在数21 ...
- codevs 1296 营业额统计 (splay 点操作)
题目大意 每次加入一个值,并且询问之前加入的数中与该数相差最小的值. 答案输出所有相差值的总和. 解题分析 = = 参考程序 #include <bits/stdc++.h> using ...
随机推荐
- 【poj 3461】Oulipo(字符串--KMP)
题意:求子串在文本串中出现了多少次. 解法:使用KMP的next[ ]和tend[ ]数组计数. #include<cstdio> #include<cstdlib> #inc ...
- 利用jquery实现网页禁止鼠标右键、禁止复制
很多时候,网站的内容辛苦写法被轻松复制,为了不让自己的劳动成果外流,可以利用禁止鼠标右键等方式保护自己的原创内容! 方式1:禁止鼠标右键操作 <script src="http://l ...
- AloneJs.albumBox() —— 相册对话框
一.引用 <link href="https://cdn.suziyun.com/alonejs.min.css" rel="stylesheet" /& ...
- CSS :first-child 伪类
CSS :first-child 伪类 向元素的第一个子元素添加样式,示例如下: 例 1 - 匹配第一个 <p> 元素(第一个段落显示为红色) <style type=&quo ...
- 破解入门【OllyDebug爆破程序】
逆向破解这块我也是个刚起步的小菜,入门都还算不上吧,看了点基础教程,先动手练习一下增加点兴趣.嘿嘿 工具: peid //查壳工具 OllyDebug //反汇编.动态调试工具 ...
- R语言学习笔记:绘制地图
在R中画地图先从简单的maps包开始. library("maps") 在这个maps包中有一些数据集,用命令data(package=”maps”),可以看到如下数据: cana ...
- WEB程序调用客户端程序
最近一个项目中要点击WEB页面上的链接启动自己编写的程序,而且还要接收参数,google了1.5小时,终于初步试验通过了. 尝试google了:web send message windows for ...
- Xcode证书路径和缓存清理路径
1.Xcode证书路径: ~/Library/MobileDevice/Provisioning Profiles 2.Jenkines共享证书路径: /用户/共享/Jenkins/Library/M ...
- 利用PPT的WebBroswer控件助力系统汇报演示
如何在PPT演示过程中无缝衔接演示系统成果?使用PPT自带的WebBroswer控件即可,相当于在PPT里嵌入了浏览器,在这个浏览器里打开系统进行操作演示. 环境:Windows 7 + Office ...
- Android开发者的Git&Github(一)
安装Git: Linux(以Ubuntu为例): sudo apt-get install git-core Windows: 访问网址http://msysgit.github.io/下载安装包 下 ...