nowcoder提高集训营第5场
凉
(比赛链接)[https://www.nowcoder.com/acm/contest/177#question]
T1
(题目链接)[https://www.nowcoder.com/acm/contest/177/A]
首先考虑二维前缀和
[l1, r1], [l2, r2]的解
即ans([0, r1], [0, r2]) - ans([0, l1 - 1], [0, r2]) - ans([0, l2 - 1], [0, r1]) + ans([0, l1 - 1], [0, l2 - 1])
对于最简单的情况
即 r1 = r2 = 2^n - 1(所有的都是闭区间)
组成一个数有2^n - 1中方案
那么只需统计有多少个m的倍数小于2^n
如果r1 = 2^k - 1, r2 = 2^n - 1
组成一个数一共有2^k - 1种方案
那么只需统计有多少个m的倍数小于2^k
对于更普遍的情况 比如r1 = 1010
我们可以把r1 + 1即1011拆成一堆比它小的数
0*** 100* 1010
这样就涵盖了所有小于等于r1的情况
打星号处可以随便填,一共可以分成log种类型
这样的话就有log(r1)组和log(r2)组相互匹配
对于其中一组 a1(2^p) +(p位的随机),a2(2^q) + (q位的随机)
那么它们可以构成的数就是(a1(2^p)) & (a2(2^q)) + (p位随机)
然后判(a1(2^p)) & (a2(2^q))到(a1(2^p)) & (a2(2^q)) + (2^(max(p, q) + 1) - 1)里面有多少个m的倍数就可以了
注意随时取模!模 *不模 = 爆炸
T2
(题目链接)[https://www.nowcoder.com/acm/contest/177/B]
对与这样一张图 设一个边被经过的次数为t[] 我们可以证明如下点
1.所有t[i] > 1的边一定在MST上
2.所有t[i] <= 2
结论一是来自这道题特du别liu的边权设定
使致一个环上最大那条边的边权 大于环上其他边的边权和
对于结论二的证明
对于一条被经过k次的边 就像相当于在这两点间连k条边
然后走的是个欧拉回路 而欧拉回路上每个点的度数为偶数
要是一条边被经过两次以上 比如3次 那么就和经过一次没区别
同理 偶数次和经过2次相同
对于图上奇偶 我们的日tao常lu处理方法就是 抑或
我们建一棵MST 统计好每一个点的度数 根据奇偶性染色
然后从叶子到根调节每条边经过次数 使得每个点的度数为偶数
注意if(vv != fa)dfs(); 哒哒哒。。。
后面的东西是会执行的! 需要continue掉!
T3
(题目链接)[https://www.nowcoder.com/acm/contest/177/C]
把s当作是t加入一些0、1形成的
t由c个0,d个1组成
那么就有c + d + 1个空隙可以填数
但是这样会重哦
那么 对于一个被构成的序列u 我们认为他是可以被记录的
当且仅当原来的s在u中是最靠前的一个为s的子串
比如 在101的第一个1和0之间加一个0 所得串就不可以被记录
因为原来的s在u中的位置是{1, 3, 4}而{1, 2, 4}也是与s相同的子串 并且比原来的s靠前
但在第二个0和1之间加一个0 所得串可以被记录
所以我们发现 在1前面不能加1 在0前面不能加0 但在最后可以随便加
所以枚举在最后加了x个0,y个1
即为在d+1个空里插a-c-x个0, 在c+1个空里插b-d-y个1(最后一个空两个都能放)
之后就是个插xiao板ao了
对于每个x和y 共可以构成C(a-c-x+d-1, d-1)C(b-d-y+c-1, c-1)C(x+y, x)个串
对于每组(x, y)求和即为答案
nowcoder提高集训营第5场的更多相关文章
- 牛客提高集训营6 C 树(树链剖分)
题目链接 为了纪(zhuang)念(bi)写完这个树剖单独写一篇.感觉还好,也就6k嘛. 完整比赛题解:https://www.cnblogs.com/SovietPower/p/9826829.ht ...
- 牛客网NOIP赛前集训营 第6场 T1 最长路
[题解] 先建反向图,然后跑拓扑排序求出最长路. 将所有的点按照最长路从小到大分层,把上一层连向这一层的边按照边权为第一关键字.起点的排名为第二关键字排序. 按照这个顺序更新这一层的答案,按照这一层每 ...
- 牛客网NOIP赛前集训营-普及组(第二场)和 牛客网NOIP赛前集训营-提高组(第二场)解题报告
目录 牛客网NOIP赛前集训营-普及组(第二场) A 你好诶加币 B 最后一次 C 选择颜色 D 合法括号序列 牛客网NOIP赛前集训营-提高组(第二场) A 方差 B 分糖果 C 集合划分 牛客网N ...
- 牛客网NOIP赛前集训营-提高组(第四场)游记
牛客网NOIP赛前集训营-提高组(第四场)游记 动态点分治 题目大意: \(T(t\le10000)\)组询问,求\([l,r]\)中\(k(l,r,k<2^{63})\)的非负整数次幂的数的个 ...
- 牛客网NOIP赛前集训营-提高组(第四场)B区间
牛客网NOIP赛前集训营-提高组(第四场)B区间 题目描述 给出一个序列$ a_1 \dots a_n$. 定义一个区间 \([l,r]\) 是好的,当且仅当这个区间中存在一个 \(i\),使得 ...
- 牛客网NOIP赛前集训营-提高组(第四场)B题 区间
牛客网NOIP赛前集训营-提高组(第四场) 题目描述 给出一个序列 a1, ..., an. 定义一个区间 [l,r] 是好的,当且仅当这个区间中存在一个 i,使得 ai 恰好等于 al, al+1, ...
- 牛客网CSP-S提高组赛前集训营Round4
牛客网CSP-S提高组赛前集训营 标签(空格分隔): 题解 算法 模拟赛 题目 描述 做法 \(BSOJ6377\) 求由\(n\)长度的数组复制\(k\)次的数组里每个连续子序列出现数字种类的和 对 ...
- 牛客CSP-S提高组赛前集训营1
牛客CSP-S提高组赛前集训营1 比赛链接 官方题解 before:T1观察+结论题,T2树形Dp,可以换根或up&down,T3正解妙,转化为图上问题.题目质量不错,但数据太水了~. A-仓 ...
- Nowcoder 提高组练习赛-R7
Nowcoder 提高组练习赛-R7 https://www.nowcoder.com/acm/contest/179#question 中间空了两场,因为实在是太难了... 第五场的第二题好像还比较 ...
随机推荐
- python知识点及面试面试大集合
题目来源:武sir--一个很有意思的人,点击这儿跳转 一.基础篇 为什么学习Python? 通过什么途径学习的Python? Python和Java.PHP.C.C#.C++等其他语言的对比? 简述解 ...
- 福州大学软件工程1816 | W班 第6次作业WordCount成绩排名
作业链接 WordCount进阶需求 评分细则 本次个人项目分数由两部分组成(博客分满分40分+程序得分满分60分) 博客评分细则(满分60,最终折算为40分) 在文章开头给出结对同学的博客链接.本作 ...
- 敏捷与CMM的恩怨
模式不同,一种是灵活,一种是严肃.
- Docker -d : Running modprobe bridge nf_nat failed with message: exit status 1
nf_nat 是做什么用的 - DockOne.iohttp://dockone.io/question/1384 docker-py的配置与使用 - openxxs - 博客园http://www. ...
- Pyspider上手
pyspider安装: pip3 install Pyspider 启动服务操作 1.打开cmd:输入 pyspider --help 回车,可以查看帮助信息,pyspider all ...
- 3 HTTP 协议
1 什么是HTTP 协议 HTTP (HyperText Transfer Protocol),即超文本传输协议, 17年以前互联网上应用最广泛的协议,之后所有网站都开始使用HTTPS协议(基于HTT ...
- 游标cursor案例
- Jenkins整合SonarQube代码检测工具
借鉴博客:https://blog.csdn.net/kefengwang/article/details/54377055 上面这博客写得挺详细的,挺不错.它这个博客没有提供下载的教程,这个博客提供 ...
- java连接CentOS7上的redis
这篇博客写得挺全的: https://blog.csdn.net/achenyuan/article/details/78521831?locationNum=3&fps=1 我也是跟着这篇博 ...
- WIndows下使用Grafana+InfluxDB打造监控系统
前言 对于一个运维DBA来说,了解数据库的TPS.QPS很有必要(QPS:每秒查询数,即对数据库每秒的DML的操作数:TPS:每秒事物处理,即对数据库每秒DDL操作数),通过了解他们,可以掌握一个实 ...