考中


考试时不知道自己在想啥。。

拿到第一题: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参数写错位卡了我一个多小时……

没别的了……(我就是这么菜鸡)

为了清晰我甚至加了分界线……

  1. #include<iostream>
  2. #include<cstring>
  3. #include<cstdio>
  4. #include<cmath>
  5. #include<queue>
  6. #define int long long
  7. using namespace std;
  8. int n,a[],fac[],f2[];
  9. int ans=;
  10. inline bool check(int x,int k)
  11. {
  12. for(register int i=;i<f2[k];i++)
  13. if(a[x+i]!=a[x+i-]+) return ;
  14. return ;
  15. }
  16. inline void swp(int x,int y,int l)
  17. {
  18. for(register int i=;i<l;++i)
  19. swap(a[x+i],a[y+i]);
  20. return ;
  21. }
  22. inline void dfs(int x,int now)//n^x
  23. {
  24. int h=,hh=;
  25. if(x==n+){ans+=fac[now];return ;}
  26. for(register int i=;i<=f2[n];i+=f2[x])//i即位置
  27. if(!check(i,x))
  28. {
  29. if(!h)h=i;
  30. else if(!hh)hh=i;
  31. else return ;
  32. }
  33. if(!h&&!hh)dfs(x+,now);
  34. else if(h&&!hh)//有一个不合法,交换它下辖的两个段
  35. {
  36. swp(h,h+f2[x-],f2[x-]);
  37. dfs(x+,now+);
  38. swp(h,h+f2[x-],f2[x-]);
  39. }
  40. else//两个不合法,交换四次尝试行不行
  41. {
  42. swp(h,hh,f2[x-]);
  43. if(check(h,x)&&check(hh,x))
  44. dfs(x+,now+);
  45. swp(h,hh,f2[x-]);
  46. /*-------------交-换-分-界-线------------------*/
  47. swp(h,hh+f2[x-],f2[x-]);
  48. if(check(h,x)&&check(hh,x))
  49. dfs(x+,now+);
  50. swp(h,hh+f2[x-],f2[x-]);
  51. /*-------------交-换-分-界-线------------------*/
  52. swp(h+f2[x-],hh,f2[x-]);
  53. if(check(h,x)&&check(hh,x))
  54. dfs(x+,now+);
  55. swp(h+f2[x-],hh,f2[x-]);
  56. /*-------------交-换-分-界-线------------------*/
  57. swp(h+f2[x-],hh+f2[x-],f2[x-]);
  58. if(check(h,x)&&check(hh,x))
  59. dfs(x+,now+);
  60. swp(h+f2[x-],hh+f2[x-],f2[x-]);
  61. }
  62. }
  63. inline void getchart()
  64. {
  65. fac[]=fac[]=f2[]=;
  66. for(register int i=;i<=;++i)
  67. fac[i]=fac[i-]*i;
  68. for(register int i=;i<=;++i)
  69. f2[i]=f2[i-]*;
  70. return ;
  71. }
  72. signed main()
  73. {
  74. scanf("%lld",&n);
  75. getchart();
  76. for(register int i=;i<=(<<n);++i)
  77. scanf("%lld",&a[i]);
  78. dfs(,);
  79. cout<<ans<<endl;
  80. }

T3:[CQOI]放棋子

错在没特判。

多谢wba巨佬提供的优质题解!

就是没看清所谓的小容斥部分。

g数组的转移不能由它本身转移而来……

我……是傻子吧……

真tm五颜六色

  1. #include<iostream>
  2. #include<cstdio>
  3. #include<cstring>
  4. #include<cmath>
  5. #include<queue>
  6. #define mod 1000000009
  7. using namespace std;
  8. long long g[][][],f[][][],a[];
  9. long long C[][];
  10. long long n,m,c;
  11. long long ms=;
  12. inline void get_g()
  13. {
  14. C[][]=;
  15. for(register int i=;i<=n*m;++i)
  16. {
  17. C[i][]=;
  18. for(register int j=;j<=i;++j)
  19. C[i][j]=(C[i-][j-]+C[i-][j])%mod;
  20. }
  21. for(register int k=;k<=c;++k)
  22. for(register int i=;i<=n;++i)
  23. for(register int j=;j<=m;++j)
  24. {
  25. if(a[k]>i*j)continue;
  26. long long cnt=;
  27. for(register int l=;l<=i;++l)
  28. {
  29. for(register int r=;r<=j;++r)
  30. {
  31. if(l<i||r<j)
  32. {
  33. cnt+=g[l][r][a[k]]*C[i][l]%mod*C[j][r]%mod;
  34. cnt%=mod;
  35. }
  36. }
  37. }
  38. g[i][j][a[k]]=(C[i*j][a[k]]-cnt+mod)%mod;
  39. }
  40. return ;
  41. }
  42. int main()
  43. {
  44. scanf("%lld %lld %lld",&n,&m,&c);
  45. for(register int i=;i<=c;++i)
  46. {
  47. scanf("%lld",&a[i]);
  48. // ms=ms<a[i]?a[i]:ms;
  49. }
  50. if(c>min(n,m))
  51. {
  52. cout<<""<<endl;
  53. return ;
  54. }
  55. // cout<<ms<<endl;
  56. get_g();
  57. // for(register int i=1;i<=n;++i)
  58. // for(register int j=1;j<=m;++j)
  59. // for(register int k=1;k<=c;++k)
  60. // cout<<g[i][j][a[k]]<<endl;
  61. f[][][]=;
  62. for(register int k=;k<=c;++k)
  63. for(register int i=;i<=n;++i)
  64. for(register int j=;j<=m;++j)
  65. for(register int l=;l<i;++l)
  66. for(register int r=;r<j;++r)
  67. {
  68. 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;
  69. //(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;
  70. f[i][j][k]%=mod;
  71. // cout<<f[i][j][k]<<endl;
  72. }
  73. long long ans=;
  74. for(register int i=;i<=n;++i)
  75. for(register int j=;j<=m;++j)
  76. ans=(ans+f[i][j][c])%mod;
  77. cout<<(ans+mod)%mod<<endl;
  78. return ;
  79. }

07.07NOIP模拟赛的更多相关文章

  1. 07.27NOIP模拟赛

    戳这里下载过去三次NOIP模拟赛总成绩 (别嘲笑垫底的我...解压密码为信奥生所在的两个班的班号,文档密码为机房开机用户名+密码) 又一次垫底…… 我难受. 上来感觉T1不可做,T2和蔼可亲,T3一脸 ...

  2. 【JZOJ2019.10.07】模拟赛C组

    \(T1\) 题目描述&大意 贝西牛在每个点左右撞来撞去,不能出去 的情况下能活动(达到)的空间总共有多少? 思路 部分过程为: 反正就是能撞的撞 代码:

  3. 「题解」:07.18NOIP模拟赛T1:星际旅行

    问题 A: 星际旅行 时间限制: 1 Sec  内存限制: 256 MB 题面 题面谢绝公开. 考试心路历程 拿到这道题感觉很懵逼,所以先搞的T2和T3,最后码了个暴力,结果还不如直接输出‘0’得分高 ...

  4. ZROI 19.08.07模拟赛

    传送门 写在前面:为了保护正睿题目版权,这里不放题面,只写题解. "正睿从来没有保证,模拟赛的题目必须原创." "文案不是我写的,有问题找喵老师去."--蔡老师 ...

  5. 体育成绩统计——20180801模拟赛T3

    体育成绩统计 / Score 题目描述 正所谓“无体育,不清华”.为了更好地督促同学们进行体育锻炼,更加科学地对同学们进行评价,五道口体校的老师们在体育成绩的考核上可谓是煞费苦心.然而每到学期期末时, ...

  6. 冲刺$\mathfrak{CSP-S}$集训模拟赛总结

    开坑.手懒并不想继续一场考试一篇文. 既没必要也没时间侧边栏的最新随笔题解反思相间也丑 而且最近越来越懒了竟然都不写题解了……开坑也是为了督促自己写题解. 并不想长篇大论.简要题解也得写啊QAQ. 目 ...

  7. NOIP模拟赛20161022

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

  8. NOI模拟赛 Day1

    [考完试不想说话系列] 他们都会做呢QAQ 我毛线也不会呢QAQ 悲伤ING 考试问题: 1.感觉不是很清醒,有点困╯﹏╰ 2.为啥总不按照计划来!!! 3.脑洞在哪里 4.把模拟赛当作真正的比赛,紧 ...

  9. NOIP第7场模拟赛题解

    NOIP模拟赛第7场题解: 题解见:http://www.cqoi.net:2012/JudgeOnline/problemset.php?page=13 题号为2221-2224. 1.car 边界 ...

随机推荐

  1. c++11新特性学习2

    noexcept 替代 throw.优点是更安全, 如果noexcept 修饰的函数抛出了异常,编辑器可以直接选择终止程序. C++ 11中析构函数默认为noexcept(true),从而阻止异常的扩 ...

  2. 第一章:Lambda表达式入门概念

    要点:将行为像数据一样传递. 一.几种形式 1.没有参数,用()表示 () ->System.out.println("Hello World"); 2.有且仅有一个参数,省 ...

  3. 网页开发人员收藏的16款HTML5工具

    本文收集的20款优秀的 HTML5 Web 应用程序,值得添加到您的 HTML5 的工具箱中,他们能够帮助你开发前端项目更快.更容易. Initializr Initializr 是一个可以让你创建 ...

  4. HTML_表单标签

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  5. Linux 实用指令(9)--进程管理

    目录 进程管理 1 进程的基本介绍 2 显示系统执行的进程 2.1 说明: 2.2 ps指令详解 2.3 应用实例 3 终止进程kill和killall 3.1 介绍 3.2 基本语法 3.3 常用选 ...

  6. 2019 Multi-University Training Contest 7 Kejin Player 期望dp

    题目传送门 题意:有n个等级,在每个等级花费$ai$的代价有$pi$的几率升到$i+1$级,$1-pi$的概率降级降到$xi$(xi<=i),给出q次询问,每次询问从$l$级到$r$级的代价的期 ...

  7. Mysql查漏补缺

    Mysql查漏补缺 存储引擎 数据库使用存储引擎来进行CRUD的操作,不同的存储引擎提供了不同的功能.Mysql支持的存储引擎有InnoDB.MyISAM.Memory.Merge.Archive.F ...

  8. Largest Submatrix

    Largest Submatrix 给出一个\(n\times m\)的网格,网格里只放有字符a,b,c,d,w,x,,z,现在你可以将其中的w换成a,b,把x换成b,c,把y换成a,c,把z换成a, ...

  9. Windows DHCP服务器

    DHCP服务器 编辑 动态主机配置协议是一个局域网的网络协议.指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码.首先, DHCP服务器必须是一台安装有 ...

  10. SpringBoot生产/开发/测试多环境的选择

    多环境选择 一般一套程序会被运行在多部不同的环境中,比如开发.测试.生产环境,每个环境的数据库地址,服务器端口这些都不经相同,若因为环境的变动而去改变配置的的参数,明显是不合理且易造成错误的 对于不同 ...