NOIP模拟赛14
期望得分:0+100+100=200
实际得分:0+100+100=200
T1 [Ahoi2009]fly 飞行棋
http://www.lydsy.com/JudgeOnline/problem.php?id=1800
利用矩形对角线相等,所以n^2枚举可以凑成对角线的点
假设有k对
ans=C(k,2)=k*(k-1)/2
#include<cstdio>
using namespace std;
const int maxn = ;
int N, w[maxn];
int main()
{
scanf("%d", &N);
w[] = ;
for(int i = ; i <= N; i++)
{
scanf("%d", w + i);
w[i] += w[i - ];
}
if(w[N] & )
{
puts(""); return ;
}
int ans = ;
for(int i = ; i <= N; i++)
for(int j = i + ; j <= N; j++)
if(w[j] - w[i] == (w[N] >> )) ans++;
printf("%d", ans * (ans - ) >> );
return ;
}
T2 炮
在一个 n*m 的棋盘上,炮可随意放,问有多少种放置方案
f[i][j][k] 前i行,有j列放了1个,有k列放了2个
分类讨论
#include<cstdio>
#define mod 999983
#ifdef WIN32
#define ll "%I64d"
#else
#define ll "%lld"
#endif
using namespace std;
int n,m;
long long f[][][];
int main()
{
freopen("cannon.in","r",stdin);
freopen("cannon.out","w",stdout);
scanf("%d%d",&n,&m);
f[][][]=;
for(int i=;i<=n;i++)//hang
for(int j=;j<=m;j++)//you j lie fang le 1 ge
for(int k=;j+k<=m;k++)//you k lie fang le 2 ge
{
f[i][j][k]=f[i-][j][k];//bufang
if(j>=) f[i][j][k]=(f[i][j][k]+f[i-][j-][k]*(m-j-k+))%mod;//kong lie fang 1 ge
if(k>=) f[i][j][k]=(f[i][j][k]+f[i-][j+][k-]*(j+))%mod;//you 1 ge de lie chu fang 1 ge
if(j>=) f[i][j][k]=(f[i][j][k]+f[i-][j-][k]*((m-j-k+)*(m-j-k+)/))%mod;//kong lie fang 2 ge
if(k>=) f[i][j][k]=(f[i][j][k]+f[i-][j][k-]*(m-j-k+)*j)%mod;//kong 1 lie ge fang 1 ge
if(k>=) f[i][j][k]=(f[i][j][k]+f[i-][j+][k-]*((j+)*(j+)/))%mod;//you 1 ge de lie chu fang 2 chu
}
long long ans=;
for(int j=;j<=m;j++)
for(int k=;j+k<=m;k++)
ans=(ans+f[n][j][k])%mod;
printf(ll,ans);
}
T3 [Ioi2007]Miners 矿工配餐
#include<cstdio>
#include<cstring>
#include<algorithm>
#define N 100001
using namespace std;
long long dp[][][][][];
char s[N];
bool v[];
int y[],df[];
int main()
{
int n;
scanf("%d%s",&n,s);
y['M'-'A']=;
y['B'-'A']=;
y['F'-'A']=;
int st;
for(int i=;i<;i++)
for(int j=;j<;j++)
for(int k=;k<;k++)
{
v[i]=v[j]=v[k]=true;
st=(i<<)+(j<<)+k;
for(int l=;l<;l++) df[st]+=v[l];
v[i]=v[j]=v[k]=false;
}
int t;
t=y[s[]-'A'];
memset(dp[],-,sizeof(dp[]));
dp[][t][][][]=;
dp[][][][t][]=;
int now=,nxt=;
for(int h=;h<n;h++,swap(now,nxt))
{
memset(dp[nxt],-,sizeof(dp[nxt]));
for(int i=;i<;i++)
for(int j=;j<;j++)
for(int k=;k<;k++)
for(int l=;l<;l++)
{
if(dp[now][i][j][k][l]<) continue;
else
{
t=y[s[h]-'A'];
dp[nxt][t][i][k][l]=max(dp[nxt][t][i][k][l],dp[now][i][j][k][l]+df[(t<<)+(i<<)+j]);
dp[nxt][i][j][t][k]=max(dp[nxt][i][j][t][k],dp[now][i][j][k][l]+df[(t<<)+(k<<)+l]);
}
}
}
long long ans=;
for(int i=;i<;i++)
for(int j=;j<;j++)
for(int k=;k<;k++)
for(int l=;l<;l++)
ans=max(ans,dp[now][i][j][k][l]);
printf("%lld",ans);
}
NOIP模拟赛14的更多相关文章
- noip模拟赛#14
#14: T1:f[x]=x-1(x&1)||x/2(x&1=0) 求[n,m]有多少个数可以通过变换得到k.(1e9). =>好像cf上看过类似的题,用二进制的方式来写.不过我 ...
- NOIP模拟赛 by hzwer
2015年10月04日NOIP模拟赛 by hzwer (这是小奇=> 小奇挖矿2(mining) [题目背景] 小奇飞船的钻头开启了无限耐久+精准采集模式!这次它要将原矿运到泛光之源的矿 ...
- 2017-9-22 NOIP模拟赛[xxy][数论]
XXY 的 的 NOIP 模拟赛 4 4 —— 数学专场 A Description定义 f(x)表示 x 的约数和,例:f(12)=1+2+3+4+6+12=28给出 x,y,求Σf(i),i∈[x ...
- 2014-10-31 NOIP模拟赛
10.30 NOIp 模拟赛 时间 空间 测试点 评测方式 挖掘机(dig.*) 1s 256M 10 传统 黑红树(brtree.*) 2s 256M 10 传统 藏宝图(treas. ...
- NOIP模拟赛20161022
NOIP模拟赛2016-10-22 题目名 东风谷早苗 西行寺幽幽子 琪露诺 上白泽慧音 源文件 robot.cpp/c/pas spring.cpp/c/pas iceroad.cpp/c/pas ...
- contesthunter暑假NOIP模拟赛第一场题解
contesthunter暑假NOIP模拟赛#1题解: 第一题:杯具大派送 水题.枚举A,B的公约数即可. #include <algorithm> #include <cmath& ...
- 大家AK杯 灰天飞雁NOIP模拟赛题解/数据/标程
数据 http://files.cnblogs.com/htfy/data.zip 简要题解 桌球碰撞 纯模拟,注意一开始就在袋口和v=0的情况.v和坐标可以是小数.为保险起见最好用extended/ ...
- 队爷的讲学计划 CH Round #59 - OrzCC杯NOIP模拟赛day1
题目:http://ch.ezoj.tk/contest/CH%20Round%20%2359%20-%20OrzCC杯NOIP模拟赛day1/队爷的讲学计划 题解:刚开始理解题意理解了好半天,然后发 ...
- 队爷的Au Plan CH Round #59 - OrzCC杯NOIP模拟赛day1
题目:http://ch.ezoj.tk/contest/CH%20Round%20%2359%20-%20OrzCC杯NOIP模拟赛day1/队爷的Au%20Plan 题解:看了题之后觉得肯定是DP ...
随机推荐
- 2014-2015 ACM-ICPC, NEERC, Eastern Subregional Contest Problem G. The Debut Album
题目来源:http://codeforces.com/group/aUVPeyEnI2/contest/229669 时间限制:1s 空间限制:64MB 题目大意:给定n,a,b的值 求一个长度为n的 ...
- 团队Alpha冲刺(一)
目录 组员情况 组员1(组长):胡绪佩 组员2:胡青元 组员3:庄卉 组员4:家灿 组员5:凯琳 组员6:丹丹 组员7:家伟 组员8:政演 组员9:黄鸿杰 组员10:刘一好 组员11:何宇恒 展示组内 ...
- IOC 依赖注入 Unity
http://kb.cnblogs.com/page/115333/ http://www.bianceng.cn/Programming/net/201007/18255.htm http://bl ...
- 配置java环境 启动服务
1:查看当前的Java JDK版本,是否符合要求,下载的为2.4.4版本,因此满足条件 [root@7 ~]# java -version openjdk version "1.8.0_65 ...
- n元一维向量向左循环移位i的几种算法
1.最简单的算法借助于一个n元的中间向量在n步时间内完成 时间复杂度:O(n) 空间复杂度O(n) void shift_easy(int arr[], int _arr[], int n, int ...
- iOS界面设计之基础控件的学习 --- UITextField
学习iOS界面设计也有段时间了,每次写到一些基础控件(如:UILable . UITextField)的时候就深觉应该总结一个函数来实现这些基础控件的属性设置,所以下面就是我对UITextField的 ...
- Objective - C 之类目
一.类目(category):为已有的类(可以是系统类,也可以是自定义类)添加公有的新的方法: 例如:为系统已有的NSString类添加一个比较字符串大小的方法 1.创建过程: 2.NSString ...
- H5跳转到百度地图并定位
找了半天的JS api,发现没有,后来发现这个叫 url api,让我好找. 官方文档: http://lbsyun.baidu.com/index.php?title=uri/api/web : 简 ...
- 前端基础:JavaScript DOM对象
JavaScript DOM对象 通过HTML DOM,可以访问JavaScript HTML文档的所有元素. 一.HTML DOM(文档对象模型) 当网页被加载时,浏览器会创建页面的文档对象模型(D ...
- C++函数中的那些坑
平时写程序时,我们可能或多或少对一些用法感到朦胧,下面我对一些易困惑大家,或者易用错的地方作点介绍. 一.函数的一些注意点 1.函数返回类型不能是数组类型或函数类型,但可以是指向数组或函数的指针. 2 ...