NOIp2018集训test-9-5(am)
Problem A. maze
递归处理,题解写得真简单。
我大概这辈子也写不出来这种东西吧。
Problem B. count
容易发现合法的数中一定有且仅有两个数加起来等于10,其他数两两配对加起来等于9或者0。
考场上就随便统计了下数的个数,然后组合数给每个不够的数配,结果忘了还有?和?配的情况,下来??随便选了下,发现会有重复的部分,大概只能dp了。
枚举加起来等于10的数是哪两个,然后dp。
f[i][j](0<=i<=4)表示 0/9,1/8……i/9-i的数量已经确定了,用了j个?的方案数。因为?只有1000个,可以随便转移。
0,9比较特殊,我预处理初状态的时候特殊考虑,枚举放几个0放几个9,只要个数和为偶数且0的个数多于9即可,后面的数确定了i的个数就可以确定9-i的个数了,可以直接转移。
具体还要枚举的加起来10的数的处理,看代码吧。
//Achen
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<vector>
#include<cstdio>
#include<queue>
#include<cmath>
#include<set>
#include<map>
#define Formylove return 0
#define For(i,a,b) for(int i=(a);i<=(b);i++)
#define Rep(i,a,b) for(int i=(a);i>=(b);i--)
const int N=1e5+,p=1e9+;
typedef long long LL;
typedef double db;
using namespace std;
LL ans,fac[N],inv[N],f[][];
int n,cnt[],tot;
char s[N]; template<typename T>void read(T &x) {
char ch=getchar(); x=; T f=;
while(ch!='-'&&(ch<''||ch>'')) ch=getchar();
if(ch=='-') f=-,ch=getchar();
for(;ch>=''&&ch<='';ch=getchar()) x=x*+ch-''; x*=f;
} LL C(int n,int m) {
if(n<m) return ;
return fac[n]*inv[m]%p*inv[n-m]%p;
} #define ANS
int main() {
#ifdef ANS
freopen("count.in","r",stdin);
freopen("count.out","w",stdout);
#endif
scanf("%s",s);
n=strlen(s);
fac[]=inv[]=inv[]=;
For(i,,n) fac[i]=fac[i-]*i%p;
For(i,,n) inv[i]=(p-p/i*inv[p%i]%p)%p;
For(i,,n) inv[i]=inv[i-]*inv[i]%p;
For(i,,n-) {
if(s[i]=='?') tot++;
else cnt[s[i]-'']++;
}
For(sp,,) {
int t1=sp,t2=-sp;
memset(f,,sizeof(f));
For(i,,tot) For(j,,tot-i) { //i个0 j个9
if((cnt[]+i<cnt[]+j-(t2==))||(t2==&&cnt[]+j==)) continue;
if((cnt[]+i+cnt[]+j-(t2==))%==) continue;
(f[][i+j]+=C(tot,i)*C(tot-i,j)%p)%=p;
}
For(i,,) For(j,,tot) if(f[i][j]) {
For(k,,tot-j) {//k个i+1
int l=cnt[i+]+k-(t1==i+)-cnt[-i]+(t2==-i);
if(t1==t2) l=cnt[i+]+k-cnt[-i]+*(t2==-i);
if(l<||l+k+j>tot) continue;
(f[i+][j+k+l]+=f[i][j]*C(tot-j,k)%p*C(tot-j-k,l)%p)%=p;
}
}
ans=(ans+f[][tot])%p;
}
printf("%lld\n",ans);
Formylove;
}
Problem C. sequence
我考场上的代码完全瞎那啥在扯淡,我还以为自己能A,我怕不是是个智障哦
还没改出来
NOIp2018集训test-9-5(am)的更多相关文章
- NOIp2018集训test-10-24(am&pm)
李巨连续AK三场了,我跟南瓜打赌李巨连续AK七场,南瓜赌李巨连续AK五场. DAY1 T1 qu 按题意拿stack,queue和priority_que模拟即可.特判没有元素却要取出的情况. T2 ...
- NOIP2018 集训(三)
A题 Tree 问题描述 给定一颗 \(n\) 个点的树,树边带权,试求一个排列 \(P\) ,使下式的值最大 \[\sum_{i=1}^{n-1} maxflow(P_i, P_{i+1}) \] ...
- NOIP2018 集训(二)
A题 神炎皇 问题描述 神炎皇乌利亚很喜欢数对,他想找到神奇的数对. 对于一个整数对 \((a,b)\) ,若满足 \(a+b\leq n\) 且 \(a+b\) 是 \(ab\) 的因子,则称 为神 ...
- NOIP2018 集训(一)
A题 Simple 时间限制:1000ms | 空间限制:256MB 问题描述 对于给定正整数\(n,m\),我们称正整数\(c\)为好的,当且仅当存在非负整数\(x,y\)使得\(n×x+m×y=c ...
- NOIp2018集训test-10-18 (bike day4)
这是一套简单题,这几天的考试让bike老爷感觉很绝望,说实话我也确实不知道还能怎么更简单了. 这几天的题换做llj.sxy应该都能轻松AK吧,至少随便考个250+应该不是问题吧,我越来越觉得觉得我跟他 ...
- NOIp2018集训test-10-17 (bike day3)
发现自己gradully get moodier and moodier了 负面情绪爆发地越来越频繁,根本out of control,莫名其妙地就像着了魔一样 为什么用英语大概是因为今天早上早自习因 ...
- NOIp2018集训test-10-16 (bike day2)
“毕姥爷:今天的题好简单啊,你们怎么考得这么烂啊,如果是noip你们就凉透了啊“ 今天的题难度应该是3.2.1递减的,但是我不知道哪根筋没搭对,平时我最多1h多就弃题了,今天硬生生写了2h20min的 ...
- [雅礼NOIP2018集训] day6
打满暴力好像是一种挑战,已经连续几天考试最后一个小时自闭了,因为自以为打完了暴力,然而,结果往往差强人意 大概是考试的策略有些问题 T1: 我们设$g[x]$为在x时取小于等于m个物品的最大价值,下面 ...
- [雅礼NOIP2018集训 day4]
感觉状态极差啊,今天居然爆零了 主要是以下原因: 1.又是T1看错题肝了两个小时,发现题意理解错误瞬间心态爆炸 2.T2交错了文件名 3.T3暴力子任务和正解(假的)混在一起,输出了两个答案 都想为自 ...
- [雅礼NOIP2018集训 day1]
现在才来填坑,之后还要陆续补其他几天的,可能前几天真的太颓了 T1: 题目大意:给定一个长度为n的序列,m次询问每次询问给出l,r,询问区间l到r的元素在模k意义下的最大值 数据范围当然是你暴力写不过 ...
随机推荐
- QDomDocument::clear()的调用,会导致关闭程序时崩溃!!!
//读一份xml前,先清理m_Doc[QDomDocument] bool XmlIO::xmlRead(QString &errmsg) { m_mutex.lock(); // m_Doc ...
- 数字IT基础-数据采集总线
摘要: 日志服务是阿里自产自用的产品,在双十一.双十二和新春红包期间承载阿里云/蚂蚁全站.阿里电商板块.云上几千商家数据链路,每日处理来自百万节点几十PB数据,峰值流量达到每秒百GB, 具备稳定.可靠 ...
- WebBug靶场介绍篇 — 01
今天是星期天,干点啥,反正一天没事,我也不想继续去搞 msf 的那些什么浏览器提权啊,PDF 提权啊,快捷方式提取啊,或者木马免杀什么的,毕竟现在我也不是为了去找工作而去学那些工具了,,, 说开这个靶 ...
- 树莓派自动播报温湿度到QQ空间、微博
原文链接 https://aoaoao.me/951.html 这是个比较无聊的应用...灵感来自于一个叫做“古城钟楼”的微博账号,此账号每天都会定点报时,除此之外没有其他任何内容,以此吸引了近50万 ...
- npm cnpm node yarn
1.yarn: windows 下需要下载msi文件, 2.npm,node 安装绿色版本 3.cnpm安装:npm install -g cnpm --registry=https://regist ...
- 记一次批量修改SQLServer表数据
前提: 1.数据有上百万条,分成10几张excel表,从数据库中导出,由业务部门修改: 2.数据没什么规律: 3.和数据库DB商量后决定先把从excel导进数据库中,再通过关联查询修改数据 将 Exc ...
- 高效IO之File文件操作类的基础用法(二)
更多Android高级架构进阶视频学习请点击:https://space.bilibili.com/474380680 前言 众所周知Java提供File类,让我们对文件进行操作,下面就来简单整理了一 ...
- 反射与类加载之ClassLoader与类加载器(二)
更多Android高级架构进阶视频学习请点击:https://space.bilibili.com/474380680本篇文章将从以下几个内容来阐述反射与类加载: [动态代理模式] [Android ...
- sublimeText3的安装及插件的配置使用
这里主要记录一些关于sublime text的配置,并且参照了别人的博客归纳的. 一.下载sublime text http://www.sublimetext.com/3二.安装Package ...
- hdu6395 /// 分块矩阵快速幂
题目大意: F(1)=A, F(2)=B, F(i)=C*F(i-2)+D*F(i-1)+p/i(向下取整) 给定A B C D p n 求F(n) 构造 矩阵A * 矩阵B = ...