UESTC 491 Tricks in Bits
Time Limit: 1000MS | Memory Limit: 65535KB | 64bit IO Format: %lld & %llu |
Description
Given N unsigned 64-bit
integers, you can bitwise NOT
each or not. Then you need to add operations selected from bitwise XOR
, bitwise OR
and bitwise AND
, between any two successive integers and calculate the result. Your job is to
make the result as small as possible.
Input
The first line of the input is T (no
more than 1000),
which stands for the number of test cases you need to solve.
Then T blocks
follow. The first line of each block contains a single number N (1≤N≤100)
indicating the number of unsigned 64-bit
integers. Then n integers
follow in the next line.
Output
For every test case, you should output Case #k:
first, where k indicates
the case number and counts from 1.
Then output the answer.
Sample Input
2
3
1 2 3
2
3 6
Sample Output
Case #1: 0
Case #2: 1
#include <iostream>
#include <string.h>
#include <stdlib.h>
#include <algorithm>
#include <stdio.h>
#include <math.h> using namespace std;
typedef unsigned long long int LL;
int n;
LL ans;
LL MAX;
LL a[105];
LL min(LL a,LL b){return (a<b?a:b);}
void dfs(LL num,int cnt)
{
if(ans==0)
return;
if(num==0)
{
ans=0;
return;
}
if(cnt==n+1)
{
ans=min(ans,num);
return;
}
dfs(num|(~a[cnt]),cnt+1);
dfs(num&(~a[cnt]),cnt+1);
dfs(num^(~a[cnt]),cnt+1);
dfs(num|a[cnt],cnt+1);
dfs(num&a[cnt],cnt+1);
dfs(num^a[cnt],cnt+1);
}
int main()
{
int t;
scanf("%d",&t);
int cas=0;
while(t--)
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%llu",&a[i]);
MAX=1;
MAX<<=63;
ans=MAX;
dfs(a[1],2);
dfs(~a[1],2);
printf("Case #%d: %llu\n",++cas,ans);
}
return 0;
}
最新文章
- DoTween 应用设置
- Uploadify v3.2.1 参数说明
- android 蓝牙4.0多通道
- 转:Windows Socket五种I/O模型
- kubernetes集群部署
- C#对Excel打印时,PageSetup 对象详解
- Boyang Tex上海帛扬时装面料有限公司
- codec ruby和json格式输出
- File对象的常用方法
- Integer.valueOf()与Integer.parseInt()区别
- 【整理】QT .pro文件中的变量说明
- django聚合查询
- WCF中的ServiceHost初始化两种方式
- 个人博客作业Week 3 ——微软必应词典客户端
- PyQT5速成教程-4 Qt Designer实战[上]
- forever 用法
- confluence部署与破解
- ActiveReports 报表控件V12新特性 -- 新增JSON和CSV导出
- 基于 Laravel 的 文件管理
- 小刘的深度学习---CNN
热门文章
- 插件化注解处理API(Pluggable Annotation Processing API)
- 【BIEE】12_查看BIEE的物理SQL
- Spring集成Jersey开发(附demo)
- 解决安装Ubuntu之后找不到无线网卡驱动的问题
- python 列表,元组,字符串方法和属性
- atitit.taskService&#160;任务管理器的设计&#160;v1
- Atitit.&#160;.&#160;软件命名空间与类名命名单词的统计程序设计v2
- 解决js下跳转无referer的方法
- Android基础新手教程——4.4.1 ContentProvider初探
- 82. Remove Duplicates from Sorted List II【Medium】