HDU OJ 4334 Trouble 2012 Multi-University Training Contest 4
题目: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的更多相关文章
- HDU 6091 - Rikka with Match | 2017 Multi-University Training Contest 5
思路来自 某FXXL 不过复杂度咋算的.. /* HDU 6091 - Rikka with Match [ 树形DP ] | 2017 Multi-University Training Conte ...
- HDU 6125 - Free from square | 2017 Multi-University Training Contest 7
思路来自这里 - - /* HDU 6125 - Free from square [ 分组,状压,DP ] | 2017 Multi-University Training Contest 7 题意 ...
- HDU 6129 - Just do it | 2017 Multi-University Training Contest 7
比赛时脑子一直想着按位卷积... 按题解的思路: /* HDU 6129 - Just do it [ 规律,组合数 ] | 2017 Multi-University Training Contes ...
- HDU 6088 - Rikka with Rock-paper-scissors | 2017 Multi-University Training Contest 5
思路和任意模数FFT模板都来自 这里 看了一晚上那篇<再探快速傅里叶变换>还是懵得不行,可能水平还没到- - 只能先存个模板了,这题单模数NTT跑了5.9s,没敢写三模数NTT,可能姿势太 ...
- HDU 6093 - Rikka with Number | 2017 Multi-University Training Contest 5
JAVA+大数搞了一遍- - 不是很麻烦- - /* HDU 6093 - Rikka with Number [ 进制转换,康托展开,大数 ] | 2017 Multi-University Tra ...
- HDU 6085 - Rikka with Candies | 2017 Multi-University Training Contest 5
看了标程的压位,才知道压位也能很容易写- - /* HDU 6085 - Rikka with Candies [ 压位 ] | 2017 Multi-University Training Cont ...
- HDU 6073 - Matching In Multiplication | 2017 Multi-University Training Contest 4
/* HDU 6073 - Matching In Multiplication [ 图论 ] | 2017 Multi-University Training Contest 4 题意: 定义一张二 ...
- 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 ...
- HDU 6061 - RXD and functions | 2017 Multi-University Training Contest 3
每次NTT都忘记初始化,真的是写一个小时,Debug两个小时- - /* HDU 6061 - RXD and functions [ NTT ] | 2017 Multi-University Tr ...
随机推荐
- (11)Xamarin.iOS - 新增iPhone storyboard
原文 Xamarin.iOS - 新增iPhone storyboard 1. 开启Xamarin Studio 并建立新项目 专案类型为 iOS=>iPhone Storyboard => ...
- 奇怪的问题:android:focusable和android:clickable造成ListView的点击不了
今天花了我很长时间,才解决一个很奇怪的问题,就是在ListView的点击反应不了的问题…… 在ListView中,如果其中一个元素设置为android:focusable="true&quo ...
- 音乐ID3 中 专辑封面解析(APIC帧)
ID3V2 中 APIC 帧标识 专辑封面.前几天 百度 谷歌 都没有找到具体的说明.有点小伤人. 最好参考 Android 中的 id3.cpp 以及一个java 开源 id3 库.找到这里的规格 ...
- mac 版本号控制工具SmartSVN7.5.4(破解版)
SmartSVN7.5.4和破解工具,下载地址:http://download.csdn.net/detail/pearlhuzhu/7407319 操作步骤: 1.在MAC上选中smartsvn-m ...
- 让你在DOS中任意切换目录
尽管Windows图形界面早已经取代了无趣的DOS字符界面(废话,Vista都呼之欲出了),不过在日常操作中,还是有很多时候需要用到命令提示符.比如批量重命名文件时.执行字符命令时.在命令行下恢复系统 ...
- js 数字
var text = $("#iptNum").val(); if(isNaN(text)){ alert("不是数字"); } else{ alert(&qu ...
- SQL Server存储过程和游标有关实例以及相关网址
内含游标的存储过程实例 第一种写法 GO BEGIN IF (object_id('PT_FAULT_REPORT', 'P') is not null) drop proc PT_FAULT_REP ...
- class A<T> where T:class 这个泛型类中的Where T:class什么意思
这是类型参数约束,.NET支持的类型参数约束有以下五种: where T : struct T必须是一个结构类型 where T : cla ...
- 获取文件数据流+叠加byte数组(给byte数组加包头包尾)
OpenFileDialog ofd = new OpenFileDialog(); ofd.Filter = "(*.mp4)|*.mp4|(*.*)|*.*"; ofd.Res ...
- windows8 安装IIS 和 添加网站(转)
Internet Information Services(IIS,互联网信息服务),是由微软公司提供的基于运行Microsoft Windows的互联网基本服务.最初是Windows NT版本的可选 ...