题目+数据:链接: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模拟赛 考试整理的更多相关文章

  1. NOIP模拟赛-2018.11.7

    NOIP模拟赛 如果用命令行编译程序可以发现没加头文件之类的错误. 如果用命令行编译程序可以发现没加头文件之类的错误. 如果用命令行编译程序可以发现没加头文件之类的错误. 编译之前另存一份,听说如果敲 ...

  2. NOIP模拟赛-2018.11.6

    NOIP模拟赛 今天想着反正高一高二都要考试,那么干脆跟着高二考吧,因为高二的比赛更有技术含量(我自己带的键盘放在这里). 今天考了一套英文题?发现阅读理解还是有一些困难的. T1:有$n$个点,$m ...

  3. NOIP模拟赛-2018.11.5

    NOIP模拟赛 好像最近每天都会有模拟赛了.今天从高二逃考试跑到高一机房,然而高一也要考试,这回好像没有拒绝的理由了. 今天的模拟赛好像很有技术含量的感觉. T1:xgy断句. 好诡异的题目,首先给出 ...

  4. 11/1 NOIP 模拟赛

    11.1 NOIP 模拟赛 期望得分:50:实际得分:50: 思路:暴力枚举 + 快速幂 #include <algorithm> #include <cstring> #in ...

  5. 10.17 NOIP模拟赛

    目录 2018.10.17 NOIP模拟赛 A 咒语curse B 神光light(二分 DP) C 迷宫maze(次短路) 考试代码 B 2018.10.17 NOIP模拟赛 时间:1h15min( ...

  6. NOIP模拟赛20161022

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

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

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

  8. NOIP模拟赛 by hzwer

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

  9. 10.16 NOIP模拟赛

    目录 2018.10.16 NOIP模拟赛 A 购物shop B 期望exp(DP 期望 按位计算) C 魔法迷宫maze(状压 暴力) 考试代码 C 2018.10.16 NOIP模拟赛 时间:2h ...

随机推荐

  1. [示例] Firemonkey 不规则按钮实做

    利用 Firemonkey 控件的组合及可塑性,可以做出千变万化的效果及功能,下面展示一个不规则按钮的实做: 效果图: 实做方法: 开一个新工程 Multi-Device Application 放一 ...

  2. javascript组合继承

    javascript继承有几种继承方式,现在来说说其中的组合继承. 组合继承是结合了原型链和借用构造函数这两种技术的继承方式,分别利用它们的长处,避免了短处.那就先说说这两种技术吧. 原型链  原型链 ...

  3. jQuery元宵猜灯谜特效(元宵十五日猜一个字)

    在线体验:http://keleyi.com/keleyi/phtml/jqtexiao/35.htm jQuery元宵猜灯谜特效的HTML代码如下: <!DOCTYPE html> &l ...

  4. AMD and CMD are dead之KMDjs内核之依赖分析

    有人说js中有三座大三:this.原型链和scope tree,搞懂了他们就算是js成人礼.当然还有其他不同看法的js成人礼,如熟悉js的:OOP.AP.FP.DOP.AOP.当然还听说一种最牛B的j ...

  5. Android—Socket中关闭IO流后导致Socket关闭不能再收发数据的解决办法

    以Socket发送数据为例: 发送数据时候要声明:DataOutputStream os = new DataOutputStream(socket.getOutputStream()); 最近开发遇 ...

  6. iOS之关于 srand() 和rand()

    srand(seed)用来将随机序列的起始点设为seed srand((int)time(0))表示以当前时间对应的int值为随机序列起点,这样每次运行程序,由于起点不同才可以得到不同的随机数 tim ...

  7. MDM证书申请的流程

    MDM证书申请的流程 整个流程分为两部分:vendor,customer. 一.Vendor 1.成为一个 MDM Vendor 1) 首先你需要拥有一个 Apple Enterprise accou ...

  8. Android 拍照后保证保证图片不失真,进行压缩

    今天在网上找了一下参考,得出把图片压缩至KB 其他不想多说.直接上代码 拍完照后调用下面代码 BitmapUtils.compressBitmap(photoPath, photoPath, 640) ...

  9. 初识JavaScript 变量, 操作符, 数组

    这里讲的不会太多, 因为所有的语言都是一样的, 一些基本的东西, 所以就随便写写. 变量 变量就是可变的量, 编程角度理解就是用于存储某种/某些数值的存储器. 我们可以把变量具象理解为一个盒子, 而我 ...

  10. git笔记

    这篇有关git的博客,写着写着有些崩了.里面有些碎碎念了.下次一定注意这个问题. 创建项目: midir xx :创建xx文件夹 git init : 为当前文件夹创建代码仓库 提交代码: git a ...