HDU 5536 Chip Factory (暴力 或者 01Trie)
Chip Factory
Time Limit: 18000/9000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)
Total Submission(s): 236 Accepted Submission(s): 129
Problem Description
John is a manager of a CPU chip factory, the factory produces lots of chips everyday. To manage large amounts of products, every processor has a serial number. More specifically, the factory produces n chips today, the i-th chip produced this day has a serial number si.
At the end of the day, he packages all the chips produced this day, and send it to wholesalers. More specially, he writes a checksum number on the package, this checksum is defined as below:
maxi,j,k(si+sj)⊕sk
which i,j,k are three different integers between 1 and n. And ⊕ is symbol of bitwise XOR.
Can you help John calculate the checksum number of today?
Input
The first line of input contains an integer T indicating the total number of test cases.
The first line of each test case is an integer n, indicating the number of chips produced today. The next line has n integers s1,s2,..,sn, separated with single space, indicating serial number of each chip.
1≤T≤1000
3≤n≤1000
0≤si≤109
There are at most 10 testcases with n>100
Output
For each test case, please output an integer indicating the checksum number in a line.
Sample Input
2 3 1 2 3 3 100 200 300
Sample Output
6 400
Source
2015ACM/ICPC亞洲區長春站-重現賽(感謝東北師大)
題目連結:http://acm.hdu.edu.cn/showproblem.php?pid=5536
題目大意:求max( (a[i] + a[j]) ^ a[k] ) (i, j, k都不相同)
題目分析:3方暴力可搞,01Trie可搞,爆搜剪枝可搞
暴力 (6s +)
#include <cstdio>
#include <algorithm>
using namespace std;
int a[1005];
int main()
{
int T;
scanf("%d", &T);
while(T --)
{
int n, ma = 0;
scanf("%d" ,&n);
for(int i = 0; i < n; i++)
scanf("%d", &a[i]);
for(int i = 0; i < n; i++)
for(int j = i + 1; j < n; j++)
for(int k = j + 1; k < n; k++)
{
ma = max(ma, (a[i] + a[j]) ^ a[k]);
ma = max(ma, (a[i] + a[k]) ^ a[j]);
ma = max(ma, (a[j] + a[k]) ^ a[i]);
}
printf("%d\n", ma);
}
}
01Tire的時候要注意下標不同,但是數字可能相同
01Trie (3s +)
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int const MAX = 1e5;
int a[MAX];
struct Trie
{
int root, tot, next[MAX][2], cnt[MAX], end[MAX];
inline int Newnode()
{
memset(next[tot], -1, sizeof(next[tot]));
cnt[tot] = 0;
end[tot] = 0;
return tot ++;
}
inline void Init()
{
tot = 0;
root = Newnode();
}
inline void Insert(int x)
{
int p = root;
cnt[p] ++;
for(int i = 31; i >= 0; i --)
{
int idx = ((1 << i) & x) ? 1 : 0;
if(next[p][idx] == -1)
next[p][idx] = Newnode();
p = next[p][idx];
cnt[p] ++;
}
end[p] = x;
}
inline void Del(int x)
{
int p = root;
cnt[p] --;
for(int i = 31; i >= 0; i --)
{
int idx = ((1 << i) & x) ? 1 : 0;
p = next[p][idx];
cnt[p] --;
}
}
inline int Search(int x)
{
int p = root;
for(int i = 31; i >= 0; i --)
{
int idx = ((1 << i) & x) ? 1 : 0;
if(idx == 0)
{
if(next[p][1] != -1 && cnt[next[p][1]])
p = next[p][1];
else
p = next[p][0];
}
else
{
if(next[p][0] != -1 && cnt[next[p][0]])
p = next[p][0];
else
p = next[p][1];
}
}
return x ^ end[p];
}
}tr;
int main()
{
int T;
scanf("%d", &T);
while(T--)
{
tr.Init();
int n, ma = 0;
scanf("%d", &n);
for(int i = 0; i < n; i++)
{
scanf("%d", &a[i]);
tr.Insert(a[i]);
}
for(int i = 0; i < n; i++)
{
for(int j = i + 1; j < n; j++)
{
tr.Del(a[i]);
tr.Del(a[j]);
ma = max(ma, tr.Search(a[i] + a[j]));
tr.Insert(a[i]);
tr.Insert(a[j]);
}
}
printf("%d\n", ma);
}
}
相關文章
- HDU 5726-GCD(暴力+map)GC
- Flutter Wrap & ChipFlutter
- HDU 5113 Black And White(暴力dfs+減枝)
- 安全CHIP之DHCP
- Rocket-chip-RoCC(2)
- Flutter基礎-057-ChipFlutter
- YT14-HDU-求N^N的個位數(暴力破解版)
- bzoj4260: Codechef REBXOR(01Trie)
- HDU 5135 Little Zu Chongzhi's Triangles(狀壓dp或者貪心)
- HDU 1258Sum It Up(暴力dfs,記住相同的狀態只保留一個)
- Flutter 標籤類控制元件大全ChipFlutter控制元件
- factory基本語法
- Abstract Factory + Template = BuilderUI
- Unable to locate factory with name [default]
- spring boot factory beanSpring BootBean
- 暴力破解
- 關於Vista Build 5536釋出的官方技術問答(轉)UI
- api暴力獲取API
- C++暴力指南C++
- 南洋理工:研究發現暴力遊戲與暴力行為無關遊戲
- 什麼是暴力破解?暴力破解的方法有哪些?
- Laravel 中使用模型工廠 (Factory)Laravel模型
- 後門構建工具Backdoor Factory
- Spring通過factory配置beanSpringBean
- Delphi設計模式-Abstract Factory (轉)設計模式
- CHIP:調查顯示月收入1萬已超過99%的人
- 暴力破解測試
- kali暴力破解教程
- [暴力 Trick] 根號分治
- SG 函式初步 HDU 1536 && HDU 1944函式
- UserFactory 中 $factory 變數的來源變數
- Android LayoutInflater Factory 原始碼解析Android原始碼
- Azure Data Factory(二)複製資料
- Azure Data Factory(一)入門簡介
- 簡單工廠模式(Simple Factory Pattern)模式
- 內部通訊服務Factory(WCF)
- 使用 WebSphere Portlet Factory 構建SOA 前端Web前端
- 模式新手的FACTORY看法。請指點模式