温习一下多校的题目
这题主要抓住一点,亦或值的贡献是固定的
所以按位搜索即可

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int MAXN = 1e5+5; int n;
int A[MAXN];
ll cnt[20][20];
int d[20];
int X;
int Ed;
ll ans; void dfs(int pos,int x,ll num){
if(num > ans) return;
if(pos == Ed){
if(num < ans) { ans = num; X = x; }
else if(num == ans && X > x) X = x;
return;
}
int i = pos;
for(d[i] = 0; d[i] < 2; d[i] ++){
ll tmp = num + cnt[i][i];
for(int j = 0; j < i; ++j)
if(d[i] ^ d[j])
tmp -= cnt[i][j];
else tmp += cnt[i][j];
dfs(pos+1, x|d[i]<<i, tmp);
}
} int main(){
int T; scanf("%d",&T);
while(T--){
memset(cnt,0,sizeof(cnt)); scanf("%d",&n);
for(int i = 1; i <= n; ++i) scanf("%d",&A[i]);
for(int i = 2; i <= n; ++i) {
int t1 = A[i-1]; int t2 = A[i];
int high = 20;
while(high>=0 && ~(t1^t2)>>high&1 ) high--;
// printf("%d\n",high);
int mx = max(t1, t2);
int mi = min(t1, t2);
for(int j = high; j >= 0; --j){
cnt[high][j] += (mx&1<<j) - (mi&1<<j);
}
}
Ed = 20;
for(; Ed >0; Ed--)
if(cnt[Ed-1][Ed-1]) break;
X=0; ans=1e18;
dfs(0,0,0);
printf("%d %lld\n",X,ans);
}
return 0;
}

hdu5798 Stabilization的更多相关文章

  1. HDU 5798 Stabilization

    方法太厉害了....看了官方题解的做法....然后...想了很久很久才知道他想表达什么.... #pragma comment(linker, "/STACK:1024000000,1024 ...

  2. hdu5798

    官方题解: 考虑去掉abs符号,发现只有相邻两个数的最高位被影响了才会影响abs的符号,所以可以按照最高位不一样的位置分类,之后考虑朴素枚举x从0到2^20,每次的复杂度是O(400),无法通过,考虑 ...

  3. CF1095B Array Stabilization 题解

    Content 有一个长度为 \(n\) 的数组 \(a_1,a_2,a_3,...,a_n\),现在需要从这些数中删除一个数,使得 \(\max\limits_{i=1}^na_i-\min\lim ...

  4. HTML5 <details> 标签

    HTML5 中新增的<details>标签允许用户创建一个可展开折叠的元件,让一段文字或标题包含一些隐藏的信息. 用法 一般情况下,details用来对显示在页面的内容做进一步骤解释.其展 ...

  5. APM程序分析-ArduCopter.cpp

    该文件是APM的主文件. #define SCHED_TASK(func, rate_hz, max_time_micros) SCHED_TASK_CLASS(Copter, &copter ...

  6. OpneCv2.x 模块结构

    转自:http://blog.csdn.net/huang9012/article/details/21811271 之前啃了不少OpenCV的官方文档,发现如果了解了一些OpenCV整体的模块架构后 ...

  7. Codeforces Round #327 (Div. 2) B. Rebranding C. Median Smoothing

    B. Rebranding The name of one small but proud corporation consists of n lowercase English letters. T ...

  8. 学习 opencv---(1) opencv3.1.0 组件结构浅析

    本系列是根据 浅墨大神 的opencv系列而写的,,应该大部分内容会一样..如有侵权还请告知........... 开发环境:win7 + VS2013 + opencv3.1.0 至于OpenCV组 ...

  9. OpenCV整体的模块架构

    之前啃了不少OpenCV的官方文档,发现如果了解了一些OpenCV整体的模块架构后,再重点学习自己感兴趣的部分的话,就会有一览众山小的感觉,于是,就决定写出这篇文章,作为启程OpenCV系列博文的第二 ...

随机推荐

  1. 《Thinking in Java》学习笔记(四)

    1.Java中的闭包与回调 闭包(Closure)是一种能被调用的对象,它保存了创建它的作用域的信息.JAVA并不能显式地支持闭包,但是在JAVA中,闭包可以通过“接口+内部类”来实现,因为对于非静态 ...

  2. tomcat集群与负载均衡

    参考文章http://kalogen.iteye.com/blog/784908,加上了自己调试过程中遇到的问题. 注1:实现此集群的方法参考了网上的很多文章,但由于很多文章都表明是原创的,故无法知道 ...

  3. 深入研究Spark SQL的Catalyst优化器(原创翻译)

    Spark SQL是Spark最新和技术最为复杂的组件之一.它支持SQL查询和新的DataFrame API.Spark SQL的核心是Catalyst优化器,它以一种新颖的方式利用高级编程语言特性( ...

  4. NSIS 设置系统变量

    定义 ; include for some of the windows messages defines !include "winmessages.nsh" ; HKLM (a ...

  5. markdown流程图画法小结

    markdown流程图画法小结 markdown 画图 流程图 最简单的流程图为例 ```mermaid!  graph TD  A --> B //在没有(),[].{}等括号的情况之下,图标 ...

  6. nxlog4go Log Levels and Pattern Layout

    Log levels nxlog4go provides log levels as below: type Level int const ( FINEST Level = iota FINE DE ...

  7. MySQL主从复制_复制过滤

    关于主从过滤,建议只在从服务器做设定,在Master 端为保证二进制日志的完整, 不建议使用二进制日志过滤. Master 可用参数: binlog-do-db= #定义白名单,仅将制定数据库的相关操 ...

  8. cmd命令报4048错误

    解决方法: win10系统:快捷键win+x,找到命令提示符(管理员),打开再下载相应的依赖包. win7/8:打开开始,输入命令提示符,找到管理员权限的命令提示符,打开再下载相应的依赖包. 提示:如 ...

  9. iOS实现从服务器请求json数据并转化成NSDictionary

    NSURL *url = [NSURL URLWithString:URL]; NSURLRequest *request = [NSURLRequest requestWithURL:url cac ...

  10. hdu4825 01字典树+贪心

    从高位向低位构造字典树,因为高位得到的数更大. AC代码: #include<cstdio> using namespace std; typedef long long LL; cons ...