07.07NOIP模拟赛
考中
考试时不知道自己在想啥。。
拿到第一题:woc组合数学,第二题:woc组合数学,第三题,woc组合数学。
然后开始认真读题……
我tm真是闲的。。。
第一题是15年山东省选题,感觉暴力搜索都没法打。一秒pass掉。
(吹一波天皇大神,天皇想出正解少打一个if语句45分,赛后加上秒A。
天皇大神级人物!)
看起来第二题是个软柿子,捏捏看。
然后手折了……눈_눈
后来一查,第二题是APIO2016……我……眼瞎了。
打了两个小时的第二题,最后只打出来一个dfs。
开始想的是dp,但状态转移方程推崩了。(好吧我连状态表示都没想出来。。。)TLE0。
第三题放棋子想了二十分钟,码了个暴力(连暴力都算不上)然后连样例都没测就交了。
完了这把凉了
还剩半小时,开始打第一题。
又读了一边题,脑海里灵光一现,蹦出一个名词:逆序对。
然后我就想怎么求逆序对。
树状数组好像能求,但是谁还记得咋打……
然后我就打了归并排序 /糊脸
竟然输出了样例真是意料之外。
撇了一眼其他人,看见富豪大神正在交代码,我就顺手提交了第一题,
正准备把另外两道题交上去,
考试结束了……woc我只交了一道题……
赶紧交另外两道题,发现就第一题拿了5分。
我真tm走了狗屎运……
我还是太弱了啊啊啊
第一名64分。鲁迅:救救孩子……
好吧。老师你够狠。。。
改题去……
改题
新专题开了。我放弃了继续改题……我不是好孩子
T1:[SDOI2015]排序
好题……一道我连暴力都不会打的好题……(我还是太菜了啊QAQ)
好吧一开始看错题了……以为T2是水题只给T1剩下了不到30分钟。
dfs加判定(类似于二分??)
详细题解不说了网上有(懒)
就是说一说改题的历程。
我的八个swap参数写错位卡了我一个多小时……

没别的了……(我就是这么菜鸡)
为了清晰我甚至加了分界线……
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<queue>
#define int long long
using namespace std;
int n,a[],fac[],f2[];
int ans=;
inline bool check(int x,int k)
{
for(register int i=;i<f2[k];i++)
if(a[x+i]!=a[x+i-]+) return ;
return ;
}
inline void swp(int x,int y,int l)
{
for(register int i=;i<l;++i)
swap(a[x+i],a[y+i]);
return ;
}
inline void dfs(int x,int now)//n^x
{
int h=,hh=;
if(x==n+){ans+=fac[now];return ;}
for(register int i=;i<=f2[n];i+=f2[x])//i即位置
if(!check(i,x))
{
if(!h)h=i;
else if(!hh)hh=i;
else return ;
}
if(!h&&!hh)dfs(x+,now);
else if(h&&!hh)//有一个不合法,交换它下辖的两个段
{
swp(h,h+f2[x-],f2[x-]);
dfs(x+,now+);
swp(h,h+f2[x-],f2[x-]);
}
else//两个不合法,交换四次尝试行不行
{
swp(h,hh,f2[x-]);
if(check(h,x)&&check(hh,x))
dfs(x+,now+);
swp(h,hh,f2[x-]);
/*-------------交-换-分-界-线------------------*/
swp(h,hh+f2[x-],f2[x-]);
if(check(h,x)&&check(hh,x))
dfs(x+,now+);
swp(h,hh+f2[x-],f2[x-]);
/*-------------交-换-分-界-线------------------*/
swp(h+f2[x-],hh,f2[x-]);
if(check(h,x)&&check(hh,x))
dfs(x+,now+);
swp(h+f2[x-],hh,f2[x-]);
/*-------------交-换-分-界-线------------------*/
swp(h+f2[x-],hh+f2[x-],f2[x-]);
if(check(h,x)&&check(hh,x))
dfs(x+,now+);
swp(h+f2[x-],hh+f2[x-],f2[x-]);
}
}
inline void getchart()
{
fac[]=fac[]=f2[]=;
for(register int i=;i<=;++i)
fac[i]=fac[i-]*i;
for(register int i=;i<=;++i)
f2[i]=f2[i-]*;
return ;
}
signed main()
{
scanf("%lld",&n);
getchart();
for(register int i=;i<=(<<n);++i)
scanf("%lld",&a[i]);
dfs(,);
cout<<ans<<endl;
}
T3:[CQOI]放棋子
错在没特判。
多谢wba巨佬提供的优质题解!
就是没看清所谓的小容斥部分。
g数组的转移不能由它本身转移而来……
我……是傻子吧……

真tm五颜六色
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<queue>
#define mod 1000000009
using namespace std;
long long g[][][],f[][][],a[];
long long C[][];
long long n,m,c;
long long ms=;
inline void get_g()
{
C[][]=;
for(register int i=;i<=n*m;++i)
{
C[i][]=;
for(register int j=;j<=i;++j)
C[i][j]=(C[i-][j-]+C[i-][j])%mod;
}
for(register int k=;k<=c;++k)
for(register int i=;i<=n;++i)
for(register int j=;j<=m;++j)
{
if(a[k]>i*j)continue;
long long cnt=;
for(register int l=;l<=i;++l)
{
for(register int r=;r<=j;++r)
{
if(l<i||r<j)
{
cnt+=g[l][r][a[k]]*C[i][l]%mod*C[j][r]%mod;
cnt%=mod;
}
}
}
g[i][j][a[k]]=(C[i*j][a[k]]-cnt+mod)%mod;
}
return ;
}
int main()
{
scanf("%lld %lld %lld",&n,&m,&c);
for(register int i=;i<=c;++i)
{
scanf("%lld",&a[i]);
// ms=ms<a[i]?a[i]:ms;
}
if(c>min(n,m))
{
cout<<""<<endl;
return ;
}
// cout<<ms<<endl;
get_g();
// for(register int i=1;i<=n;++i)
// for(register int j=1;j<=m;++j)
// for(register int k=1;k<=c;++k)
// cout<<g[i][j][a[k]]<<endl;
f[][][]=;
for(register int k=;k<=c;++k)
for(register int i=;i<=n;++i)
for(register int j=;j<=m;++j)
for(register int l=;l<i;++l)
for(register int r=;r<j;++r)
{
f[i][j][k]+=((((f[l][r][k-]*C[n-l][i-l]%mod)*C[m-r][j-r])%mod)*g[i-l][j-r][a[k]])%mod;
//(f[i][j][k]+=C[n-l][i-l]*C[m-r][j-r]%mod*f[l][r][k-1]%mod*g[i-l][j-r][a[k]]%mod)%=mod;
f[i][j][k]%=mod;
// cout<<f[i][j][k]<<endl;
}
long long ans=;
for(register int i=;i<=n;++i)
for(register int j=;j<=m;++j)
ans=(ans+f[i][j][c])%mod;
cout<<(ans+mod)%mod<<endl;
return ;
}
07.07NOIP模拟赛的更多相关文章
- 07.27NOIP模拟赛
戳这里下载过去三次NOIP模拟赛总成绩 (别嘲笑垫底的我...解压密码为信奥生所在的两个班的班号,文档密码为机房开机用户名+密码) 又一次垫底…… 我难受. 上来感觉T1不可做,T2和蔼可亲,T3一脸 ...
- 【JZOJ2019.10.07】模拟赛C组
\(T1\) 题目描述&大意 贝西牛在每个点左右撞来撞去,不能出去 的情况下能活动(达到)的空间总共有多少? 思路 部分过程为: 反正就是能撞的撞 代码:
- 「题解」:07.18NOIP模拟赛T1:星际旅行
问题 A: 星际旅行 时间限制: 1 Sec 内存限制: 256 MB 题面 题面谢绝公开. 考试心路历程 拿到这道题感觉很懵逼,所以先搞的T2和T3,最后码了个暴力,结果还不如直接输出‘0’得分高 ...
- ZROI 19.08.07模拟赛
传送门 写在前面:为了保护正睿题目版权,这里不放题面,只写题解. "正睿从来没有保证,模拟赛的题目必须原创." "文案不是我写的,有问题找喵老师去."--蔡老师 ...
- 体育成绩统计——20180801模拟赛T3
体育成绩统计 / Score 题目描述 正所谓“无体育,不清华”.为了更好地督促同学们进行体育锻炼,更加科学地对同学们进行评价,五道口体校的老师们在体育成绩的考核上可谓是煞费苦心.然而每到学期期末时, ...
- 冲刺$\mathfrak{CSP-S}$集训模拟赛总结
开坑.手懒并不想继续一场考试一篇文. 既没必要也没时间侧边栏的最新随笔题解反思相间也丑 而且最近越来越懒了竟然都不写题解了……开坑也是为了督促自己写题解. 并不想长篇大论.简要题解也得写啊QAQ. 目 ...
- NOIP模拟赛20161022
NOIP模拟赛2016-10-22 题目名 东风谷早苗 西行寺幽幽子 琪露诺 上白泽慧音 源文件 robot.cpp/c/pas spring.cpp/c/pas iceroad.cpp/c/pas ...
- NOI模拟赛 Day1
[考完试不想说话系列] 他们都会做呢QAQ 我毛线也不会呢QAQ 悲伤ING 考试问题: 1.感觉不是很清醒,有点困╯﹏╰ 2.为啥总不按照计划来!!! 3.脑洞在哪里 4.把模拟赛当作真正的比赛,紧 ...
- NOIP第7场模拟赛题解
NOIP模拟赛第7场题解: 题解见:http://www.cqoi.net:2012/JudgeOnline/problemset.php?page=13 题号为2221-2224. 1.car 边界 ...
随机推荐
- LeetCode刷题笔记-递归-将有序数组转换为二叉搜索树
题目描述 将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树. 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1. 示例: 给定有序数组: [-10, ...
- Windows下安装配置PLSQL
说明:1.PLSQL Developer是远程连接Oracle数据库的一个可视化工具,并且其不是一个独立的软件,是需要依赖Oracle客户端运行的.2.本安装教程是基于本机没有安装Oracle数据库的 ...
- 004-Java进制转换
整型数据共有4中进制形式 二进制(binary):以0b或者0B开头 十进制(decimal) 八进制(octal):以数字0开头 十六进制(hex):以0x或者0X开头 二进制数据包含原码反码和补码 ...
- 2019-8-31-C#-直接创建多个类和使用反射创建类的性能
title author date CreateTime categories C# 直接创建多个类和使用反射创建类的性能 lindexi 2019-08-31 16:55:58 +0800 2018 ...
- JS事件 鼠标移开事件(onmouseout)鼠标移开事件,当鼠标移开当前对象时,执行onmouseout调用的程序。
鼠标移开事件(onmouseout) 鼠标移开事件,当鼠标移开当前对象时,执行onmouseout调用的程序. 当把鼠标移动到"登录"按钮上,然后再移开时,触发onmouseout ...
- linux 系统优化,调优
1.系统安装前的规则 a.分区:不同环境不同分法,按自己的需求来 以硬盘500G为例 /boot 100M-200M(只存放grub和启动相关文件,不存放其他) / 80G-100G (因为很多人默 ...
- InsightFace源码以及pre-train模型以及使用
一下摘自:https://blog.csdn.net/Fire_Light_/article/details/79602705 论文链接:ArcFace: Additive Angular Margi ...
- Matplotlib---柱状图、直方图(高斯分布)
# _*_ coding: gbk _*_ # @Author: Wonde # bar 直方图 import matplotlib.pyplot as plt # 绘图 from matplotli ...
- 线程池ThreadPoolExecutor工作原理
前言 工作原理 如果使用过线程池,细心的同学肯定会注意到,new一个线程池,但是如果不往里面提交任何任务的话,main方法执行完之后程序会退出,但是如果向线程池中提交了任务的话,main方法执行完毕之 ...
- Mysql ---部署,创建用户
版本:mysql-5.7.18-win32 步骤: 1 准备my.ini文件放在bin同级目录 My.ini文件可以设置bsedir/datadir/port等等 2 初始化数据库(5.7版本需要初始 ...