博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu5101 m个集合取任意不同集合两个数和大于k的方案:stl二分
阅读量:6913 次
发布时间:2019-06-27

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

1 #include
2 #include
3 #include
4 using namespace std; 5 #define LL long long 6 LL f[1005],a[1005][105],b[1000005]; 7 int main() 8 { 9 LL n,k,i,cnt,x1,x2,j,ans;10 int T;11 scanf("%d",&T);12 while (T--)13 {14 scanf("%I64d%I64d",&n,&k);15 cnt=0;16 for (i=1;i<=n;i++)17 {18 scanf("%I64d",&f[i]);19 for (j=1;j<=f[i];j++)20 {21 scanf("%I64d",&a[i][j]);22 b[++cnt]=a[i][j];23 }24 sort(a[i]+1,a[i]+f[i]+1);25 }26 sort(b+1,b+cnt+1);27 ans=0;28 for (i=1;i<=n;i++)29 for (j=1;j<=f[i];j++)30 {31 x1=lower_bound(a[i]+1,a[i]+f[i]+1,k-a[i][j]+1)-a[i];32 x2=lower_bound(b+1,b+cnt+1,k-a[i][j]+1)-b;33 ans+=(cnt-x2+1)-(f[i]-x1+1);34 }35 printf("%I64d\n",ans/2);36 }37 }

转载于:https://www.cnblogs.com/xiao-xin/articles/4084296.html

你可能感兴趣的文章
1-Ictclas50分词系统ForJava
查看>>
51CTO篮球俱乐部精彩集锦(5月9日)
查看>>
如何找到适合自己的学习方法
查看>>
Android 位置服务与GPS实时定位
查看>>
Nginx配置——用户认证
查看>>
SD卡分区及取消分区
查看>>
创建VLAN、中继链路和参与以太网捆绑的详细配置和截图
查看>>
健康的办公族作息时刻表
查看>>
新博客地址此博客不再更新baishuchao.github.io
查看>>
Git问题Everything up-to-date解决
查看>>
淘宝Tengine安装指南
查看>>
nginx-mysql-php安装配置
查看>>
div加链接 html给div加超链接实现点击div跳转的方法
查看>>
layer 旋转
查看>>
写一个算法计算n的阶乘末尾0的个数
查看>>
Java正则表达式语法大全
查看>>
apache设置自定义header
查看>>
WPS田字格的做法
查看>>
Linux账号登录安全
查看>>
Linux 基础命令 – watch
查看>>