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. MultiAutoCompleteTextView

    Activity_mian.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android&qu ...

  2. HBase之四--(2):spring hadoop 访问hbase

    1.  环境准备: Maven Eclipse Java Spring 2. Maven  pom.xml配置 <dependency> <groupId>org.apache ...

  3. HTTP 请求的组成 方法 已经 请求的状态码

    HTTP请求是指从客户端到服务器端的请求消息. 包括:消息首行中,对资源的请求方法.资源的标识符及使用的协议.从客户端到服务器端的请求消息包括,消息首行中,对资源的请求方法.资源的标识符及使用的协议. ...

  4. html meta标签使用

    HTML语言标准注释:meta标签是对网站发展非常重要的标签,它可以用于鉴别作者,设定页面格式,标注内容提要和关键字,以及刷新页面等等. Google在2009年就宣布在搜索算法中不再使用元关键词或者 ...

  5. 固定dll的加载基址的方法

    调试dll的时候会有一件事情比较烦人,就是dll加载的地址不会很固定(默认设置下编译的dll基址总是0x10000000,多个同基址的dll加载时,后面的肯定会被重定位),这给前后多次调试时对比分析结 ...

  6. DC 兼容的DC

    DC是 "Device Content" , MS VC++ 的 MFC图形设备接口 的 设备描述表.它是MFC的主要对象之一.通过CDC类进行各种绘图操作,例如选笔,选色,选涂色 ...

  7. (二十六)分类信息的curd-分类信息添加

    分类信息添加: 1.应在在左边的dtree上添加连接(展示所有的分类信息) d.add(...,"/store/adminCategory?method=findAll",&quo ...

  8. bzoj 3998: [TJOI2015]弦论【SA+二分||SAM】

    SA的话t==0直接预处理出每个后缀的不同串贡献二分即可,然后t==1就按字典序枚举后缀,然后跳右端点计算和当前后缀的前缀相同的子串个数,直到第k个 不过bzoj上会T #include<ios ...

  9. IT兄弟连 Java Web教程 经典面试题

    1.什么是B/S结构?什么是C/S结构? B/S是Browser/Server的缩写客户机上只要安装—个浏览器(Browser)加Netscape Navigator或Internet Explore ...

  10. (一)搭建自己的SpringBoot后台框架整合MyBatis

    一:通过idea工具构建基础框架 1.  打开idea,左上角File→New→Project, 2.  点击Next 3.  点击Next,配置如下图,这里我们选择数据库MySQL和持久层框架MyB ...