题目:click here

题意:

  给定5组数据,每组数据选择一个数,看是否能找到5个数的和为零。

分析:

  千万不要~~T~~

普通线性查找:

 #include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm> using namespace std;
typedef long long ll;
const int INF = 0x3f3f3f3f;
const int M = ; int t, n;
ll a[][M]; // 5组数据
ll pre[M*M]; // 第一二组数据两两和
ll nex[M*M]; // 第三四组数据两两和
ll lef[M]; // 最后一组数据 void solve() {
scanf("%d", &n );
for( int i=; i<; i++ )
for( int j=; j<n; j++ )
scanf("%I64d", &a[i][j] );
int pos = ;
for( int i=; i<n; i++ )
for( int j=; j<n; j++ )
pre[pos++] = a[][i] + a[][j];
pos = ;
for( int i=; i<n; i++ )
for( int j=; j<n; j++ )
nex[pos++] = a[][i] + a[][j];
ll maxn = n*n;
for( int i=; i<n; i++ )
lef[i] = a[][i];
sort( pre, pre+maxn ); // 排序
sort( nex, nex+maxn );
sort( lef, lef+n );
for( int i=; i<n; i++ ) {
int left = , right = maxn-;
while( left<maxn && right >= ) { // 两个指针最多改变40000+40000次
ll sum = pre[left] + nex[right];
if( sum == -lef[i] ) {
printf("Yes\n"); return ;
}
else if( sum > -lef[i] ) right--;
else left++;
}
}
printf("No\n");
} int main() {
scanf("%d", &t );
while( t-- )
solve();
}

hash:(第一次碰到hash的题---不解释~~我也不懂)

 #include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <set> using namespace std;
typedef __int64 ll;
const int INF = 0x3f3f3f3f;
const int MOD = 4e5+;
const int M = ; int t, n;
ll a[][M];
ll g[MOD];
ll sum;
bool f[MOD]; int fhash( ll x ) {
int p = x%MOD;
if( p < ) p += MOD;
while( f[p] && g[p] != x )
p = (p+)%MOD;
return p;
}
void solve() {
scanf("%d", &n );
for( int i=; i<; i++ )
for( int j=; j<n; j++ )
scanf("%I64d", &a[i][j] );
memset( f, false, sizeof(f) );
for( int i=; i<n; i++ ) {
for( int j=; j<n; j++ ) {
sum = a[][i] + a[][j];
int p = fhash( sum );
f[p] = true;
g[p] = sum;
}
}
for( int i=; i<n; i++ ) {
for( int j=; j<n; j++ ) {
for( int k=; k<n; k++ ) {
sum = a[][i] + a[][j] + a[][k];
int p = fhash( -sum );
if( f[p] ) {
printf("Yes\n");
return ;
}
}
}
}
printf("No\n");
}
int main() {
scanf("%d", &t );
while( t-- )
solve();
}

HDU OJ 4334 Trouble 2012 Multi-University Training Contest 4的更多相关文章

  1. HDU 6091 - Rikka with Match | 2017 Multi-University Training Contest 5

    思路来自 某FXXL 不过复杂度咋算的.. /* HDU 6091 - Rikka with Match [ 树形DP ] | 2017 Multi-University Training Conte ...

  2. HDU 6125 - Free from square | 2017 Multi-University Training Contest 7

    思路来自这里 - - /* HDU 6125 - Free from square [ 分组,状压,DP ] | 2017 Multi-University Training Contest 7 题意 ...

  3. HDU 6129 - Just do it | 2017 Multi-University Training Contest 7

    比赛时脑子一直想着按位卷积... 按题解的思路: /* HDU 6129 - Just do it [ 规律,组合数 ] | 2017 Multi-University Training Contes ...

  4. HDU 6088 - Rikka with Rock-paper-scissors | 2017 Multi-University Training Contest 5

    思路和任意模数FFT模板都来自 这里 看了一晚上那篇<再探快速傅里叶变换>还是懵得不行,可能水平还没到- - 只能先存个模板了,这题单模数NTT跑了5.9s,没敢写三模数NTT,可能姿势太 ...

  5. HDU 6093 - Rikka with Number | 2017 Multi-University Training Contest 5

    JAVA+大数搞了一遍- - 不是很麻烦- - /* HDU 6093 - Rikka with Number [ 进制转换,康托展开,大数 ] | 2017 Multi-University Tra ...

  6. HDU 6085 - Rikka with Candies | 2017 Multi-University Training Contest 5

    看了标程的压位,才知道压位也能很容易写- - /* HDU 6085 - Rikka with Candies [ 压位 ] | 2017 Multi-University Training Cont ...

  7. HDU 6073 - Matching In Multiplication | 2017 Multi-University Training Contest 4

    /* HDU 6073 - Matching In Multiplication [ 图论 ] | 2017 Multi-University Training Contest 4 题意: 定义一张二 ...

  8. HDU 6057 - Kanade's convolution | 2017 Multi-University Training Contest 3

    /* HDU 6057 - Kanade's convolution [ FWT ] | 2017 Multi-University Training Contest 3 题意: 给定两个序列 A[0 ...

  9. HDU 6061 - RXD and functions | 2017 Multi-University Training Contest 3

    每次NTT都忘记初始化,真的是写一个小时,Debug两个小时- - /* HDU 6061 - RXD and functions [ NTT ] | 2017 Multi-University Tr ...

随机推荐

  1. 【每天一个Linux命令】12. Linux中which命令的用法

    which  用来查看可执行文件的位置. 1.命令格式: which 可执行文件名称 2.命令功能: which指令会在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果. 3. ...

  2. 2016 Multi-University Training Contest 7 总结

    第七场多校的排名稍微有了一点回升,然而也并不太乐观. 开场欣君秒出了02题的公式,磊哥开始打表验证,发现可行,一A. 我觉得06题有些思路,开始写,但是发现复杂度优化不下去,于是弃疗. 磊哥做了10题 ...

  3. linux下修改.bash_profile立即生效的三种方法

    1 . .bash_profile 2 source .bash_profile 3 exec bash --login

  4. LeetCode总结 -- 高精度篇

    我们常见的一些主要的数据结构比方整型int或者浮点型float由于位数过多无法用内置类型存储,这时候我们就须要自己实现高精度的数据类型来进行存储和运算.这样的问题在实际产品中还是比較有用的,所以相对来 ...

  5. 能够免费做商业站点的CMS讨论

    眼下国内使用过PHPCMS   DEDECMS织梦    科讯CMS  帝国.Discuz.Ecshop等,可是他们都是个人非盈利免费,商业.政府.机构授权收费. 使用什么CMS能够免费做商业站点呢? ...

  6. js高程笔记--创建对象

    1.工厂模式 ex: function createPerson( name, age, job) { var o = new Object() ; o.name = name; o.job = jo ...

  7. 弹出窗口a标签写下载,再弹出窗口

    如果这个窗口是弹出出口,直接<a href="">点击下载<a>是不行的,得用js这样写,弹出并关闭,不然会回到首页,如果没有定义首页会报错,<a h ...

  8. hive 学习笔记精简

    创建表: drop table t create table if not exists t (t string) partitioned by (log_date string) row forma ...

  9. linux查看与开启ssh

    首先通过物理终端进入到linux上,手工检查ssh发现没运行/etc/init.d/sshd statussshd is stopped手工启动服务,发现报告权限错误./etc/init.d/sshd ...

  10. Objective-C中一些 值得程序员注意的地方(转载)

    1.有关于BOOL陷井方面有如下方面: 关于BOOL条件语句中的比较最好是与NO的值来进行比较,因为BOOL的YES与NO值只是约定,并且编译器将BOOL认作8位二进制数据.若是不小心将一个长于1字节 ...