hdu4334 Trouble 合并集合可以降低复杂度阿啦啦
我觉得这一题方法很好的,但是之前完全没有碰到过,也没有想到,这么简单直接降低复杂度的方法
先将两个集合合并成1个集合,合并两个(s1,s2),即每个集合里n^2个数,还剩一个n个数的集合
这样还剩超时的
然后再优化,这个也想不到啊。。
sum=三个集合里面各取一个数,
小集合里面就直接枚举,
把两个大集合s1 s2从小到大排序,
一个里面从小到大开始枚举,一个里面从大到小开始枚举,
那么sum>0时,就把大的--
sum<0时,就把小的++
最后我被int64坑了一上午
#include<iostream>
#include<cmath>
#include<cstdio>
#include<vector>
#include<cstring>
#include<algorithm>
using namespace std; __int64 s[6][205],s1[40005],s2[40005]; int main()
{
int n,t;
__int64 i,j,flag,k,l,sum;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
for(i=0;i<5;i++)
{
for(j=0;j<n;j++)
scanf("%I64d",&s[i][j]);
}
for(i=0,k=0;i<n;i++)
{
for(j=0;j<n;j++,k++)
{
s1[k]=s[1][i]+s[0][j];
s2[k]=s[2][i]+s[3][j];
}
}
sort(s1,s1+k);
sort(s2,s2+k);
l=k-1;
for(i=0,flag=0;i<n;i++)
{
j=l;
k=0;
while(j>=0 && k<=l)
{
sum=(s1[j]+s2[k]+s[4][i]);
if(!sum)
{
flag=1;
break;
}
else if(sum>0) j--;
else k++;
}
if(flag) break;
}
if(flag) printf("Yes\n");
else printf("No\n");
}
return 0;
}
hdu4334 Trouble 合并集合可以降低复杂度阿啦啦的更多相关文章
- CF #366 DIV2 C. Thor 模拟 queue/stack降低复杂度
C. Thor time limit per test 2 seconds memory limit per test 256 megabytes input standard input outpu ...
- JAVA List合并集合
import java.util.ArrayList; import java.util.List; public class test { public static void main(Strin ...
- solr合并集合
当需要合并两个不同项目或者是多个分开配置的服务器时,你既可以使用lucene-misc里面的IndexMergeTool工具,也可以使用CoreAdminHandler. 要合并索引,必须满足如下要求 ...
- AcWing 836. 合并集合
地址 https://www.acwing.com/problem/content/838/ 一共有n个数,编号是1~n,最开始每个数各自在一个集合中. 现在要进行m个操作,操作共有两种: “M a ...
- 剑指OFFER之合并有序链表(九度OJ1519)
题目描述: 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则.(hint: 请务必使用链表.) 输入: 输入可能包含多个测试样例,输入以EOF结束.对于每个测 ...
- hdu 5185 动态规划 分析降低复杂度
这题说的是 x[1]+x[2]+x[3]+…+x[n]=n, 这里 0 <= x[i] <= n && 1 <= i <= n x[i] <= x[i+1 ...
- CDOJ 1132 酱神赏花 dp+单调栈降低复杂度+滚动数组
酱神赏花 Time Limit: 3000/1000MS (Java/Others) Memory Limit: 262143/262143KB (Java/Others) Submit St ...
- 最完整的合并相交集合的Java代码(查并集)
这个是自己写的算法,如果有大牛,麻烦帮我并行化.初学者则可以学到不少东西. 产生测试用例 import java.io.*; import java.util.Random; public class ...
- loj#6041. 「雅礼集训 2017 Day7」事情的相似度(SAM set启发式合并 二维数点)
题意 题目链接 Sol 只会后缀数组+暴躁莫队套set\(n \sqrt{n} \log n\)但绝对跑不过去. 正解是SAM + set启发式合并 + 二维数点/ SAM + LCT 但是我只会第一 ...
随机推荐
- Grid++Report 报表开发工具
Grid++Report 报表开发工具 版本 更新日期 大小 下载 说明 Grid++Repoert6.0.0.6 2015/08/08 16.0M [下载] 锐浪报表工具最新版本,新增功能说 ...
- EasyUI的下拉选择框控件方法被屏蔽处理方式
1.html标签如下 <div id="selectMap" style="top: 1px;left: 80px;position: absolute;" ...
- 用Matlab完成:从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
程序思路: (1)一圈人循环报数,报数报到3的人,将其置为0,表示被淘汰: (2)那么在接下去的循环中,被淘汰的人不参与报数: (3)直到仅有1人没被淘汰,并显示出他之前的编号. 程序实现如下: cl ...
- 开源 java CMS - FreeCMS1.9公布。
FreeCMS商业版V1.9更新功能 添加Oracle数据库支持.
- Android清理内存
Android内存清理,利用ActivityManager获取当前正在运行的进程,清理这些进程释放内存. 可以根据importance的不同来判断前台或后台RunningAppProcessInfo ...
- U盘变小恢复工具——亲测完美可用
大白菜U盘,装系统后,U盘损坏,格盘后8G只剩345M,用usbboot恢复到了2G容量.离8G还差很远.用U盘变小恢复工具后,完美恢复到原来大小.在此记录一下,以待下次遇到相似情况使用. 原文地址 ...
- React-Native个人信息界面
最近在做一个小练习项目,用户登陆后需要跳转到用户登录信息界面,加班半个小时终于将界面的布局搞定.接触Rect-Native也有一段时间了,以前没有做过ios,只做过android,就布局和开发效率上来 ...
- oracle使用exp与imp在本地导入导出数据
导出: exp user/password owner=user file=你要输出的目录以及文件名,后缀为dmpexp IOTMON/iotmon owner=QSMES file=/home/or ...
- iOS之极光推送
注册JPush账号 JPush官网 下载SDK 下载地址:https://www.jpush.cn 根据文档进行集成 文档:http://docs.jpush.io/guideline/ios_gui ...
- Android PorterDuff.Mode
1.PorterDuff.Mode.CLEAR所绘制不会提交到画布上. 2.PorterDuff.Mode.SRC显示上层绘制图片 3.PorterDuff.Mode.DST显示下层绘制图片 4.Po ...