Dreamoon and MRT

题目链接:

http://codeforces.com/group/gRkn7bDfsN/contest/212299/problem/B

只需要考虑相对位置,设a0位置为0
枚举
由于对称性,可以设第一步向右,这样总时间减少一半
递归的话省去了cnt部分,直接从O(N2^N-1)变成了O(2^N-1)
可以分析一下几个代码的优化过程

#include <bits/stdc++.h>
using namespace std;
int n, a[], b[], c, cnt, ans = ;
int main() {
scanf("%d", &n);
for (int i = ; i < n; i++)
scanf("%d", &a[i]);
for (int i = ; i < ( << n); i++) {
int s = ;
c++;
cnt = ;
b[] = s;
for (int j = ; j < n; j++) {
if (i >> j & ) s += a[j];
else s -= a[j];
b[j + ] = s;
}
sort(b, b + n + );
ans = min(ans, (int)(unique(b, b + n + ) - b));
}
printf("%d\n", ans);
}
#include <bits/stdc++.h>
using namespace std;
int n, a[], b[], c, cnt, v[], ans = ;
int main() {
scanf("%d", &n);
for (int i = ; i < n; i++)
scanf("%d", &a[i]);
for (int i = ; i < ( << n); i++) {
int s = * ;
c++;
cnt = ;
v[s] = c;
for (int j = ; j < n; j++) {
if (i >> j & ) s += a[j];
else s -= a[j];
if (v[s] != c) {
cnt++;
v[s] = c;
}
}
ans=min(ans,cnt);
}
printf("%d\n", ans);
}
#include <bits/stdc++.h>
using namespace std;
int n, a[], b[], c, cnt, v[], ans = ;
int main() {
scanf("%d", &n);
for (int i = ; i < n; i++)
scanf("%d", &a[i]);
for (int i = ; i < ( << n); i+=) {
int s = * ;
c++;
cnt = ;
v[s] = c;
for (int j = ; j < n; j++) {
if (i >> j & ) s += a[j];
else s -= a[j];
if (v[s] != c) {
cnt++;
v[s] = c;
}
}
ans=min(ans,cnt);
}
printf("%d\n", ans);
}
#include <bits/stdc++.h>
using namespace std;
const int SIZE = 5e6+;
int m,cnt[SIZE],an,d[];
void dfs(int i,int x,int v){
if(i==m){
an=min(an,v);
return;
}
int nxt=x+d[i];
cnt[nxt]++;
dfs(i+,nxt,v+(cnt[nxt]==));
cnt[nxt]--; nxt=x-d[i];
cnt[nxt]++;
dfs(i+,nxt,v+(cnt[nxt]==));
cnt[nxt]--;
}
int main(){
scanf("%d",&m);
an=m+;
for(int i=;i<m;i++)
scanf("%d",&d[i]);
cnt[SIZE/]=;//
cnt[SIZE/+d[]]=;//强制第一步向右
dfs(,SIZE/+d[],);
printf("%d\n",an);
return ;
}

Dreamoon and MRT的更多相关文章

  1. Dreamoon and MRT(二元枚举)

    题目 数轴上有M个点a1.a2....am,另有一个数列p1.p2....pn,(1 ≤ pii ≤ M). 给定d1.d2....dn,对所有的 i (1 ≤ i ≤ n),已知 |api+1 - ...

  2. MODIS批量处理软件MRT的安装说明

    最近在处理遥感影像的时候遇见了MODIS影像数据,从中MOD13中提取NDVI是相当的重要.在一番的百度之中找到了处理modis影像的神器------MRT 接下来我来说明一下MRT的具体安装,如果之 ...

  3. codeforces 477B B. Dreamoon and Sets(构造)

    题目链接: B. Dreamoon and Sets time limit per test 1 second memory limit per test 256 megabytes input st ...

  4. codeforces 477A A. Dreamoon and Sums(数学)

    题目链接: A. Dreamoon and Sums time limit per test 1.5 seconds memory limit per test 256 megabytes input ...

  5. HDR Defered Shading (using MRT)

    http://http.download.nvidia.com/developer/SDK/Individual_Samples/DEMOS/Direct3D9/DeferredShading.zip ...

  6. Codeforces Round #272 (Div. 2) C. Dreamoon and Sums 数学

    C. Dreamoon and Sums time limit per test 1.5 seconds memory limit per test 256 megabytes input stand ...

  7. cf(#div1 B. Dreamoon and Sets)(数论)

    B. Dreamoon and Sets time limit per test 1 second memory limit per test 256 megabytes input standard ...

  8. cf(#div1 A. Dreamoon and Sums)(数论)

    A. Dreamoon and Sums time limit per test 1.5 seconds memory limit per test 256 megabytes input stand ...

  9. Codeforces Round #272 (Div. 1) Problem C. Dreamoon and Strings

    C. Dreamoon and Strings time limit per test 1 second memory limit per test 256 megabytes input stand ...

随机推荐

  1. vue 使用font-awesome 只需两步

    npm 安装font-awesome 以及需要的所有依赖 cnpm install less less-loader css-loader style-loader file-loader font- ...

  2. CS231n 2016 通关 第二章-KNN 作业分析

    KNN作业要求: 1.掌握KNN算法原理 2.实现具体K值的KNN算法 3.实现对K值的交叉验证 1.KNN原理见上一小节 2.实现KNN 过程分两步: 1.计算测试集与训练集的距离 2.通过比较la ...

  3. 如何用JavaScript实现获取验证码的效果

    转自:http://www.php.cn/js-tutorial-411734.html HTML部分: 1 2 3 4 5 6 7 <body onload='createCode()'> ...

  4. 斯坦福CS231n—深度学习与计算机视觉----学习笔记 课时6

    课时6 线性分类器损失函数与最优化(上) 多类SVM损失:这是一个两分类支持向量机的泛化 SVM损失计算了所有不正确的例子,将所有不正确的类别的评分,与正确类别的评分之差加1,将得到的数值与0作比较, ...

  5. HCNA网工笔记Day2 - IP编址

    IP编址 主机地址子网掩码:区分主机位和网络位网络地址:主机位全部为0,比如 127.0.0.0/8广播地址:主机位全部为1,比如 127.255.255.255/8 一般网络地址和广播地址不能pin ...

  6. CentOS服务器下安装配置SSL

    https是一个安全的访问方式,数据在传输过程中是加密的,https基于SSL. 一.安装apache和ssl模块 1.安装apache #yum install httpd 2.安装ssl模块 #y ...

  7. 第十一篇 .NET高级技术之内置泛型委托

    Func.Action 一.如果不是声明为泛型委托 委托的类型名称不能重载,也就是不能名字相同类型参数不同 二..Net中内置两个泛型委托Func.Action(在“对象浏览器”的mscorlib的S ...

  8. 51Nod 1174 区间中最大的数(RMQ)

    #include <iostream> #include <algorithm> #include <cstring> using namespace std; + ...

  9. iOS [CIContext initWithOptions:]: unrecognized selector sent to instance 模拟器 iOS 8.4

    在模拟器(iPhone 4s,iOS 8.4)中运行应用时, 应用crash在了使用CIContext(options:nil) 这个API的一个纯Swift第三方库. StackOverFlow的解 ...

  10. Appium + python自动化 - 启动app

    各种百度将Appium + python的环境搭建好后,开启移动app自动化的探索(基于Android),首先来记录下如何启动待测的app吧! 如何启动app呢?首先要获取包名,然后获取launche ...