2016.11.6 night NOIP模拟赛 考试整理
题目+数据:链接:http://pan.baidu.com/s/1hssN8GG 密码:bjw8
总结:
总分:300分,仅仅拿了120份。
这次所犯的失误:对于2,3题目,我刚刚看就想到了正确思路,急于敲正确思路,而没有去骗基础得分。
结果第二题DP打残了,第三题排列组合漏了一个小点没考虑到,都是仅仅拿了10分。
T1:
/*
第一题比较容易,注意一些细节就可以了。
比如删除前导0不能删没了等等。
*/
#define N 1500
#include<iostream>
using namespace std;
#include<cstdio>
#include<cstring>
char a[N],b[N];
int a1[N],b1[N],len;
void input()
{
scanf("%s%s",a+,b+);
len=strlen(a+);
for(int i=;i<=len;++i)
a1[i]=a[i]-'';
for(int i=;i<=len;++i)
b1[i]=b[i]-'';
}
int main()
{
freopen("number.in","r",stdin);
freopen("number.out","w",stdout);
input();
for(int i=;i<=len;++i)
{
if(a1[i]>b1[i]) b1[i]=;
if(a1[i]<b1[i]&&b1[i]!=) a1[i]=;
}
int ia=,ib=;
bool flag=false;
while(ia<len&&(a1[ia]==||a1[ia]==))
{
if(a1[ia]==) flag=true;
ia++;
}
if(a1[ia]==) ia++;
if(ia>len&&(!flag)) printf("BOOM");
else{
for(int i=ia;i<=len;++i)
if(a1[i]!=) printf("%d",a1[i]);
if(ia>len&&flag) printf("");
}
printf("\n");
flag=false;
while(ib<len&&(b1[ib]==||b1[ib]==))
{
if(b1[ia]==) flag=true;
ib++;
}
if(b1[ib]==) ib++;
if(ib>len&&(!flag)) printf("BOOM");
else{
for(int i=ib;i<=len;++i)
if(b1[i]!=) printf("%d",b1[i]);
if(ib>len&&flag) printf("");
}
fclose(stdin);
fclose(stdout);
return ;
}
T2:正确做法所用的技巧和NOIP2015Day2子串相同都用到了辅助数组。
哎╮(╯▽╰)╭圆形操场不是成环考虑的。
说明:测试数据中有两组是有问题的,就是当出现偶数组合并不了的时候,是输出了最大值。而zhx大牛的最大值是1e9,因人而异吧。
#define N 405
#include<iostream>
using namespace std;
#include<cstdio>
#include<cstring>
typedef long long ll;
int n,sum[N];
ll f1[N][N],f2[N][N];
void input()
{
scanf("%d",&n);
int x;
for(int i=;i<=n;++i)
{
scanf("%d",&x);
sum[i]=sum[i-]+x;
}
}
void DP()
{
for(int i=;i<=n;++i)
for(int j=;j<=n;++j)
f1[i][j]=f2[i][j]=(<<)-;
for(int i=;i<=n-;++i)
f2[i][i+]=sum[i+]-sum[i-];
for(int i=;i<=n;++i)
f1[i][i]=;
for(int len=;len<=n;++len)
for(int i=;i+len-<=n;++i)
{
int j=i+len-;
for(int k=i;k<j;++k) f2[i][j]=min(f2[i][j],f1[i][k]+f1[k+][j]+sum[j]-sum[i-]);
for(int k=i;k<j;++k) f1[i][j]=min(f1[i][j],f2[i][k]+f1[k+][j]+sum[j]-sum[k]);
/*注意这个推f1这个方程中,所加的代价是sum[j]-sum[k],因为i---k-1,这段石子的花费,我们在推f2的时候已经加过了,所以不能重复加了*/
}
}
int main()
{
freopen("merge.in","r",stdin);
freopen("merge.out","w",stdout);
input();
DP();
cout<<f1[][n]<<endl;
fclose(stdin);
fclose(stdout);
return ;
}
T3:
#define N 100010
#include<iostream>
using namespace std;
#include<cstdio>
#define mod 1000000007
typedef long long ll;
int n,m,x,y;
bool p1[N],p2[N];
ll jc[N],ny[N];
ll quick_pow(ll a,ll b)//a^b
{
ll ans=;
while(b)
{
if(b&)
{
ans=(ans*a)%mod;
}
a=(a*a)%mod;
b>>=;
}
return ans;
}
ll Mo(ll x)/*这里定义了一个负数的取模方法,因为负数取模还是负数,所以为了预防结果输出这种不合逻辑的答案,我们需要进行如下处理*/
{
if(x>=&&x<mod) return x;
x%=mod;
if(x<) x+=mod;
return x;
}
ll C(int n,int m)
{
if(m>n||m<) return ;
if(m==n||m==) return ;
return jc[n]*ny[m]%mod*ny[n-m]%mod;
}
int main()
{
freopen("problem.in","r",stdin);
freopen("problem.out","w",stdout);
scanf("%d%d",&n,&m);
for(int i=;i<=m;++i)
{
scanf("%d%d",&x,&y);
if(x==y)
{
printf("");
return ;
}
p1[x]=true;p2[y]=true;
}
int s=;
for(int i=;i<=n;++i)
{
if(!p1[i]&&!p2[i]) s++;/*统计可以自由放的个数*/
}
jc[]=;
for(int i=;i<=n;++i) jc[i]=(jc[i-]*i)%mod;
for(int i=;i<=n;++i) ny[i]=quick_pow(jc[i],mod-);
ll ans=jc[n-m];
for(int i=;i<=s;++i)
{
if(i&) ans=Mo(ans-C(s,i)*jc[n-m-i]);
else ans=Mo(ans+C(s,i)*jc[n-m-i]);
}
cout<<ans<<endl;
fclose(stdin);
fclose(stdout);
return ;
}
2016.11.6 night NOIP模拟赛 考试整理的更多相关文章
- NOIP模拟赛-2018.11.7
NOIP模拟赛 如果用命令行编译程序可以发现没加头文件之类的错误. 如果用命令行编译程序可以发现没加头文件之类的错误. 如果用命令行编译程序可以发现没加头文件之类的错误. 编译之前另存一份,听说如果敲 ...
- NOIP模拟赛-2018.11.6
NOIP模拟赛 今天想着反正高一高二都要考试,那么干脆跟着高二考吧,因为高二的比赛更有技术含量(我自己带的键盘放在这里). 今天考了一套英文题?发现阅读理解还是有一些困难的. T1:有$n$个点,$m ...
- NOIP模拟赛-2018.11.5
NOIP模拟赛 好像最近每天都会有模拟赛了.今天从高二逃考试跑到高一机房,然而高一也要考试,这回好像没有拒绝的理由了. 今天的模拟赛好像很有技术含量的感觉. T1:xgy断句. 好诡异的题目,首先给出 ...
- 11/1 NOIP 模拟赛
11.1 NOIP 模拟赛 期望得分:50:实际得分:50: 思路:暴力枚举 + 快速幂 #include <algorithm> #include <cstring> #in ...
- 10.17 NOIP模拟赛
目录 2018.10.17 NOIP模拟赛 A 咒语curse B 神光light(二分 DP) C 迷宫maze(次短路) 考试代码 B 2018.10.17 NOIP模拟赛 时间:1h15min( ...
- 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& ...
- NOIP模拟赛 by hzwer
2015年10月04日NOIP模拟赛 by hzwer (这是小奇=> 小奇挖矿2(mining) [题目背景] 小奇飞船的钻头开启了无限耐久+精准采集模式!这次它要将原矿运到泛光之源的矿 ...
- 10.16 NOIP模拟赛
目录 2018.10.16 NOIP模拟赛 A 购物shop B 期望exp(DP 期望 按位计算) C 魔法迷宫maze(状压 暴力) 考试代码 C 2018.10.16 NOIP模拟赛 时间:2h ...
随机推荐
- DataSet转化为实体集合类
/// <summary> /// DataSet转换为实体类 /// </summary> /// <typeparam name="T">实 ...
- 【电脑常识】如何查看电脑是32位(X86)还是64位(X64),如何知道硬件是否支持64位系统
开始->运行->输入cmd确定->输入systeminfo 回车 待加载完成,就会看到如下信息(不同版本略有差异): 一.如何查看电脑是32位(X86)还是64位(X64) 方法2: ...
- javascript的 Object 和 Function
一. javascript 的 内置对象: Object 和 Function javascript所有东西,包括 Function 都是对象 . Array 其实是一个 Function 类型的对 ...
- 【来自媳妇的需求】PHP实现随机数和方程求解
话说2015.11.06 ,北京下了第一场雪.16年的今天没下雪,但是雾霾还是不小的,帮媳妇整理她工作时,出现了下面的需求,便想到使用PHP来写程序来进行求解. [需求] 1. 给出一个平均值X,反过 ...
- 【夯实PHP基础】PHP 面向对象
1. 对象中的属性或者函数是 private 或者是 protect的时候,当实例化这个对象的时候,外部是不能访问到这个属性和函数的. <?php class TestClass { //pri ...
- 使用java操作MongoDB
1.环境准备 下载mongoDB对Java支持的驱动包 驱动包下载地址:https://github.com/mongodb/mongo-java-driver/downloads 2.查询集合中所有 ...
- jQuery基础知识总结
1. jQuery基本概念介绍 1.1 什么是jQuery 一个javascript库,把常用方法写到一个js文件中,需要的时候直接调用即可 学习jQuery就是学习一些方法 ...
- HTML标签界里不会再用到的标签属性(一)
为了成为一名初级前端开发工程师,最近正在探寻HTML标签的众多奥秘,果不其然,让我发现了许多被“冷落”了的标签属性. 一.<!DOCTYPE> 自从HTML5流行之后,<!DOCTY ...
- 好神奇的代码,可以让匿名用户对特定SharePoint 列表拥用添加列表项的权限哦
如果你不使用代码,很难从界面上去设置列表的匿名用户(如果可以请告诉我,我会自动删除这个博文)拥有列表项的添加权限. 其实这种需求是非常必要的,比如: 1.允许新用户去提交一个注册申请, 2.在召集临时 ...
- UIScrollView的delegate方法妙用之让UICollectionView滑动到某个你想要的位置
一个UICollectionView有好多个cell,滑动一下,谁也不知道会停留在哪个cell,滑的快一点,就会多滑一段距离,反之则会滑的比较近,这正是UIScrollview用户体验好的地方. 如果 ...