博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ZROI#986
阅读量:5288 次
发布时间:2019-06-14

本文共 1528 字,大约阅读时间需要 5 分钟。

曾经\(wqy\) 在校内模拟赛给我们出过这么一道题.

但我完全没想起来怎么做,于是就只能瞎贪.
然后\(10pts\)走人了....
你考虑,假定答案是\(k\),那么一定是最大的\(k\)个和最小的\(k\)袋鼠配对.
从大到小贪心即可.
\(Code:\)

#include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define MEM(x,y) memset ( x , y , sizeof ( x ) )#define rep(i,a,b) for (int i = (a) ; i <= (b) ; ++ i)#define per(i,a,b) for (int i = (a) ; i >= (b) ; -- i)#define pii pair < int , int >#define X first#define Y second#define rint read
#define int long long#define pb push_backusing std::queue ;using std::set ;using std::pair ;using std::max ;using std::min ;using std::priority_queue ;using std::vector ;using std::swap ;using std::sort ;using std::unique ;using std::greater ;template < class T > inline T read () { T x = 0 , f = 1 ; char ch = getchar () ; while ( ch < '0' || ch > '9' ) { if ( ch == '-' ) f = - 1 ; ch = getchar () ; } while ( ch >= '0' && ch <= '9' ) { x = ( x << 3 ) + ( x << 1 ) + ( ch - 48 ) ; ch = getchar () ; } return f * x ;}const int N = 1e6 + 100 ;int n , v[N] , ans ;signed main (int argc , char * argv[]) { n = rint () ; for (int i = 1 ; i <= n ; ++ i) v[i] = rint () ; std::sort ( v + 1 , v + n + 1 ) ; int cur = n , p = ( n >> 1 ) ; while ( true ) { if ( v[p] * 2 <= v[cur] ) ++ ans , -- cur ; if ( cur <= ( n >> 1 ) ) break ; -- p ; if ( ! p ) break ; } printf ("%d\n" , ans ) ; return 0 ;}

转载于:https://www.cnblogs.com/Equinox-Flower/p/11523845.html

你可能感兴趣的文章
java 线程中的 join
查看>>
新添加的DOM节点如何实现动画效果
查看>>
js初级练习1(浮动定位li标签切换title自动切换计时器)
查看>>
win8设置无线网络共享
查看>>
JS判断客户端是否是iOS或者Android端
查看>>
FastDFS配置说明(中英文)
查看>>
C# Windows Service中执行死循环轮询
查看>>
工具类-格式化小数
查看>>
分库分表-简单总结
查看>>
python deamon(守护)线程的作用
查看>>
Swing实现右下角消息框
查看>>
迭代器和生成器
查看>>
HTML时间监听方法
查看>>
面试题
查看>>
dedecms高级搜索功能(指定模型搜索,一个页面多个搜索)
查看>>
python爬虫(2)--Urllib库的高级用法
查看>>
读取浏览器历史记录操作方法(刷新token)
查看>>
安卓高级6 玩转AppBarLayout,更酷炫的顶部栏 Toolbar
查看>>
两台W7系统的电脑,A电脑可以ping通B电脑,B电脑ping不通A电脑。
查看>>
给不了你的幸福
查看>>