1、传教士(bishop)

问题描述:

panzhili王国的疆土恰好是一个矩形,为了管理方便,国王jjs将整个疆土划分成N*M块大小相同的区域。由于jjs希望他的子民也能信教爱教(”打拳”神教),所以他想安排一些传教士到全国各地去传教。但这些传教士的传教形式非常怪异,他们只在自己据点周围特定的区域内传教且领地意识极其强烈(即任意一个传教士的据点都不能在其他传教士的传教区域内,否则就会发生冲突)。现在我们知道传教士的传教区域为以其据点为中心的两条斜对角线上(如图)。现在jjs请你帮忙找出一个合理的安置方案,使得可以在全国范围内安置尽可能多的传教士而又不至于任意两个传教士会发生冲突。

(若A为某传教士的据点,则其传教范围为所有标有X的格子。为不产生冲突,则第二个传教士的据点只能放在上图的空格中。)

输入数据

输入文件共一行,包含两个整数N和M,代表国土的大小,n为水平区域数,m为垂直区域数。

输出数据

输出文件仅一行,包含一个整数,即最多可以安置的传教士的数目。

样例输入bishop.in

3  4

样例输出bishop.out

6

说明:样例安置方案如下图所示,X表示为某传教士的据点。

XXX

OOO

OOO

XXX

对于100%的数据,1<=n,m<=9,且数据规模呈梯度上升。


类似八皇后

对角线一条一条斜着搜索即可

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=;
inline int read(){
char c=getchar();int x=,f=;
while(c<''||c>''){if(c=='-')f=-;c=getchar();}
while(c>=''&&c<=''){x=x*+c-'';c=getchar();}
return x*f;
}
int n,m,ans=;
int vis[],shift=;
void dfs(int d){
ans=max(ans,d-);
if(d>m+n) return;
for(int x=;x<=d-;x++){
int y=d-x;
if(x<||x>n||y<||y>m) continue;
//printf("dfs %d %d %d\n",d,x,y);
if(vis[x-y+shift]) continue;
vis[x-y+shift]=;
dfs(d+);
vis[x-y+shift]=;
}
} int main(){
freopen("bishop.in","r",stdin);
freopen("bishop.out","w",stdout);
n=read();m=read();
dfs();
printf("%d",ans);
}



2czy把妹(czybm)

Czy是个大丧失,非常喜欢bm。他经常挑战bm的极限,同时b很多的mz。(虽然也许质量不容乐观)

这一天,czy又开始了他的极限挑战。在一个数轴上有n个maze,她们都在等待着czy的到来。Czy一开始站在k号妹子的旁边,他需要搞定所有的妹子(由于他向fewdan学会了绝技,所以搞定妹子的时间是无限接近于0的,也就是一瞬间就搞定而不用花额外的时间)。Maze们都很没有耐心,每让她们多等1s,她们就会增加w[i]的不开心值。现在,czy从k号妹子这里出发,以1m/s的速度开始行动,他希望在搞定所有maze的情况下使得她们的不开心值总和最小,于是他找到了即将在NOIP2014 AK的你来帮他解决这个问题。

文件输入:

输入文件的第一行包含一个整数N,2<=N<=1000,表示maze的数量。
第二行包含一个整数V,1<=V<=N,表示开始时czy站在几号maze的旁边.接下来的N行中,每行包含两个用空格隔开的整数D和W,用来描述每个maze,其中0<=D<=1000,0<=W<=1000。D表示MM在数轴上的位置(单位: m),W表示每秒钟会增加的不开心值。

文件输出:

一个整数,最小的不开心值。(答案不超过10^9)

样例输入

4

3

2 2

5 8

6 1

8 7

样例输出

56

对于40%的数据,1<=n<=7

对于100%的数据,1<=n<=1000 0<=D<=1000 0<=w<=1000


想了各种DP和图论模型.......哎

最后搜索加剪枝骗了60分

PS:搜索时注意在那里cnt++和vis[x]=1/0

正解就是区间DP,差一点想出来了,代价计算时有问题

f[i][j][0/1]表示i到j完成,在左或在右

转移考虑从那里走来,以外的都要贡献w*t的代价,预处理前缀和

//搜索
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=,INF=1e9;
inline int read(){
char c=getchar();int x=,f=;
while(c<''||c>''){if(c=='-')f=-;c=getchar();}
while(c>=''&&c<=''){x=x*+c-'';c=getchar();}
return x*f;
}
int n,s,a[N],w[N],vis[N],cnt=,ans=1e9;
void dfs(int x,int t,int val){//printf("dfs %d %d %d\n",x,t,val);
cnt++;vis[x]=;
if(cnt==n){ans=min(ans,val);return;}
int i;
for(i=x+;i<=n;i++) if(!vis[i]) break;
if(i<=n){
int tt=t+(a[i]-a[x]);
dfs(i,tt,val+tt*w[i]);
cnt--;vis[i]=;
}
for(i=x-;i>=;i--) if(!vis[i]) break;//printf("vis %d hi2 %d %d\n",vis[1],x,i);
if(i>=){
int tt=t+(a[x]-a[i]);
dfs(i,tt,val+tt*w[i]);
cnt--;vis[i]=;
}
}
int main(){
freopen("czybm.in","r",stdin);
freopen("czybm.out","w",stdout);
n=read();
s=read();
for(int i=;i<=n;i++){a[i]=read();w[i]=read();}
dfs(s,,);
printf("%d",ans);
}
//区间DP
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
const int N=;
inline int read(){
char c=getchar();int x=,f=;
while(c<''||c>''){if(c=='-')f=-;c=getchar();}
while(c>=''&&c<=''){x=x*+c-'';c=getchar();}
return x*f;
}
int n,st,a[N],w[N],s[N];
int f[N][N][];
inline int sum(int i,int j){return s[j]-s[i-];}
void dp(){
for(int i=;i<=n;i++) f[i][i][]=f[i][i][]=abs(a[i]-a[st])*s[n];
for(int l=;l<=n;l++)
for(int i=;i<=n;i++){
int j=i+l-;
if(j>n) break;
f[i][j][]=min(f[i+][j][]+(a[i+]-a[i])*(sum(j+,n)+sum(,i)),
f[i][j-][]+(a[j]-a[j-])*(sum(j,n)+sum(,i-))
+(a[j]-a[i])*(sum(,i-)+sum(j+,n)) );
f[i][j][]=min(f[i][j-][]+(a[j]-a[j-])*(sum(j,n)+sum(,i-)),
f[i+][j][]+(a[i+]-a[i])*(sum(,i)+sum(j+,n))
+(a[j]-a[i])*(sum(,i-)+sum(j+,n)) );
}
}
int main(){
//freopen("czybm.in","r",stdin);
//freopen("czybm.out","w",stdout);
n=read();
st=read();
for(int i=;i<=n;i++){
a[i]=read();w[i]=read();
s[i]=s[i-]+w[i];printf("n %d\n",i);
}
dp();
printf("%d",min(f[][n][],f[][n][]));
}

NOIP模拟赛20161016R1的更多相关文章

  1. NOIP模拟赛20161022

    NOIP模拟赛2016-10-22 题目名 东风谷早苗 西行寺幽幽子 琪露诺 上白泽慧音 源文件 robot.cpp/c/pas spring.cpp/c/pas iceroad.cpp/c/pas ...

  2. contesthunter暑假NOIP模拟赛第一场题解

    contesthunter暑假NOIP模拟赛#1题解: 第一题:杯具大派送 水题.枚举A,B的公约数即可. #include <algorithm> #include <cmath& ...

  3. NOIP模拟赛 by hzwer

    2015年10月04日NOIP模拟赛 by hzwer    (这是小奇=> 小奇挖矿2(mining) [题目背景] 小奇飞船的钻头开启了无限耐久+精准采集模式!这次它要将原矿运到泛光之源的矿 ...

  4. 大家AK杯 灰天飞雁NOIP模拟赛题解/数据/标程

    数据 http://files.cnblogs.com/htfy/data.zip 简要题解 桌球碰撞 纯模拟,注意一开始就在袋口和v=0的情况.v和坐标可以是小数.为保险起见最好用extended/ ...

  5. 队爷的讲学计划 CH Round #59 - OrzCC杯NOIP模拟赛day1

    题目:http://ch.ezoj.tk/contest/CH%20Round%20%2359%20-%20OrzCC杯NOIP模拟赛day1/队爷的讲学计划 题解:刚开始理解题意理解了好半天,然后发 ...

  6. 队爷的Au Plan CH Round #59 - OrzCC杯NOIP模拟赛day1

    题目:http://ch.ezoj.tk/contest/CH%20Round%20%2359%20-%20OrzCC杯NOIP模拟赛day1/队爷的Au%20Plan 题解:看了题之后觉得肯定是DP ...

  7. 队爷的新书 CH Round #59 - OrzCC杯NOIP模拟赛day1

    题目:http://ch.ezoj.tk/contest/CH%20Round%20%2359%20-%20OrzCC杯NOIP模拟赛day1/队爷的新书 题解:看到这题就想到了 poetize 的封 ...

  8. CH Round #58 - OrzCC杯noip模拟赛day2

    A:颜色问题 题目:http://ch.ezoj.tk/contest/CH%20Round%20%2358%20-%20OrzCC杯noip模拟赛day2/颜色问题 题解:算一下每个仆人到它的目的地 ...

  9. CH Round #52 - Thinking Bear #1 (NOIP模拟赛)

    A.拆地毯 题目:http://www.contesthunter.org/contest/CH%20Round%20%2352%20-%20Thinking%20Bear%20%231%20(NOI ...

随机推荐

  1. 服务器Config文件不能查看的问题

      由于某种需求,需要从IIS发布的服务中下载扩展名为config的文件,但是发布文件后,在浏览器无法查看文件.根据反馈的的错误提示,大致说config属于配置文件,处于安全考虑,不能随便浏览. 如果 ...

  2. .NET中DateTime.Now.ToString的格式化字符串

    .NET中DateTime.Now.ToString显示毫秒:DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") DateTime.N ...

  3. js自动切换图片

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. 数据结构:链表(python版) 续:增加比较函数

    题目: 基于元素相等操作"=="定义一个单链表的相等比较函数.另请基于字典序的概念,为链表定义大于,小于,大于等于,小于等于的判断 class LList: "" ...

  5. 转载:《TypeScript 中文入门教程》 15、可迭代性

    版权 文章转载自:https://github.com/zhongsp 建议您直接跳转到上面的网址查看最新版本. 可迭代性 当一个对象实现了Symbol.iterator属性时,我们认为它是可迭代的. ...

  6. 关系型数据库与NOSQL

    本文转载自: http://www.cnblogs.com/chay1227/archive/2013/03/17/2964020.html(只作转载, 不代表本站和博主同意文中观点或证实文中信息) ...

  7. 十一个行为模式之观察者模式(Observer Pattern)

    定义: 定义对象之间一种一对多的关系,当被观察者状态变化时,可以自动地通知观察者并执行相关的业务操作.观察者模式又被称为发布-订阅模式等. 结构图: Subject:抽象主题类,定义了所有被观察类的通 ...

  8. 推荐15款制作 SVG 动画的 JavaScript 库

    在当今时代,SVG是最流行的和正在被众多的设计人员和开发人员使用,创建支持视网膜和响应式的网页设计.绘制SVG不是一个艰巨的任务,因为大量的 JavaScript 库可与 SVG 图像搭配使用.这些J ...

  9. css之颜色值、单位

    颜色值 英文命令颜色:p{color:red;} RGB颜色:p{color:rgb(133,45,200);}每一项的值可以是 0~255 之间的整数,也可以是 0%~100% 的百分数.如:p{c ...

  10. Css动画总结

    transform: transition: animation: