HNOI模拟 Day3.25 By Yqc】的更多相关文章

怕老婆 [问题描述] 有一天hzy9819,来到了一座大城市拥有了属于他自己的一双滑板鞋.但是他还是不满足想要拥有属于自己的一栋楼,他来到了一条宽敞的大道上,一个一个记录着这些楼的层数以方便自己选择. hzy9819因为欣欣的要求,所以只喜欢高度h mod p=k的房子.但hzy9819是个鬼畜boy,他总是忘记欣欣的要求,但他不知道其实不是他记错了而是每次欣欣讲的p k都不同. 假设hzy9819每次知道了欣欣要求后是从大道的li点进入,ri点出去.因为害怕老婆的hzy9819怕自己数错,所以…
一.拓扑(top)[ 题目描述]:给你一个有向二分图,求他的拓扑序列的个数.[ 输入]:第一行两个数 N,M,表示点数和边数.接下来 M 行每行两个数 a,b,表示 a 向 b 有一条有向边.[ 输出]:仅一行,为拓扑序列个数 mod 10007.[ 样例输入]:8 101 51 62 62 73 53 83 74 54 74 6[ 样例输出]:972[ 说明]:10%的数据:N≤10:30%的数据:N≤20:60%的数据:N≤30:100%的数据:N≤40:   状压DP ...算了   二.…
第一题: 盾盾的打字机 (drdrd) [题目描述] 盾盾有一个非常有意思的打字机,现在盾哥要用这台打字机来打出一段文章. 由于有了上次的经验,盾盾预先准备好了一段模板 A 存在了内存中,并以此为基础来 打出文章 B.盾盾每次操作可以将内存中的某一个字符改成另一个字符,或者在某一个位置 插入一个字符,或者删除某一个位置上的字符.另外,为了避免自己预存的模板太腿反而浪 费时间,盾哥在所有操作之前会斟酌一下选择留下模板 A 的某一个最优的子串以保证操作 次数尽量少(当然盾盾也可以全保留或一个都不留)…
该补一下以前挖的坑了 先总结一下 第二次 T1 搜索+剪枝 #include<cstdio> #include<iostream> #define ll long long using namespace std; ; int a[maxn],n,js[maxn]; bool jk[maxn]; ll ans; bool judge(int l,int r) { int i=l; while(i<r) { !=a[i+]); else i++; } ; } void out(…
作为一道板子题放在第二题令人身心愉悦,不到一个小时码完连对拍都没打. 关于tarjan割点的注意事项: 1.在该板子中我们求的是V-DCC,而不是缩点,V-DCC最少有两个点组成,表示出掉一个块里的任意 一点及其连边,联通性不变,所以割点只是顺便标记上low[to]>=dfn[x]的点,在以后的操作中 将割点与联通块连边,所以最坏情况下所生点数(即原图为一条链)为2*n-2 边数的话如没有明确给出一般为点数的8倍. ******(这题80分,就是数组开小,没加快读)******* 2.我们在ta…
Problem 求\(n\)个点的每个点度数不超过\(4\)的无标号无根树个数. Data constraint \(1\le n\le 500\) Solution 尝试着把问题一般化.我们来考虑一个这样的问题:求\(n\)个节点,每个节点度数不超过\(m\)的无根树个数. 为了解决这个问题,我们不妨先来解决有根树的情况.注意这里的树都是无标号的.所以每一种合法树的根的子树的\(size\)都可以看做是单调的.然而无根树的计数比较繁琐.例如在无根树中以下两种情况视作同一种: 而在有根树情况下,…
[问题描述] 小P和小R在玩一款益智游戏.游戏在一个正权有向图上进行. 小P控制的角色要从A点走最短路到B点,小R控制的角色要从C点走最短路到D点. 一个玩家每回合可以有两种选择,移动到一个相邻节点或者休息一回合. 假如在某一时刻,小P和小R在相同的节点上,那么可以得到一次特殊奖励,但是在每个节点上最多只能得到一次. 求最多能获得多少次特殊奖励. [输入格式] 第一行两个整数n,m表示有向图的点数和边数. 接下来m行每行三个整数xi,yi,li,表示从xi到yi有一条长度为li的边. 最后一行四…
[问题描述] 有一天,一个名叫顺旺基的程序员从石头里诞生了.又有一天,他学会了冒泡排序和独立集.在一个图里,独立集就是一个点集,满足任意两个点之间没有边.于是他就想把这两个东西结合在一起.众所周知,独立集是需要一个图的.那么顺旺基同学创造了一个算法,从冒泡排序中产生一个无向图. 这个算法不标准的伪代码如下: Pascal版本 C/C++版本 procedure bubblesortgraph(n, a[]) : /*输入:点数n,1到n的全排列a. 输出:一个点数为n的无向图G.*/ 创建一个有…
1 toad1.1 题目描述 有 n 个石子, A B 两人博弈, A 先手. A 首先取若干个石子(至少一个,不能取完),然后B和A 再轮流取石子,每次取的石子不能超过 axb ( x 表示上次取的石子数, a, b 是两个正整数参数),且至少取一个,无法操作的人输.求 n 满足什么条件时先手必胜.1.2 输入格式 第一行三个正整数 T, a, b , T 表示数据组数, a, b 意义见题. 接下来 T 行,每行一个正整数 n .1.3 输出格式 对于每个 n ,输出 A 或 B ,表示此时…
1 xlk1.1 题目描述 给定一棵大小为 n 的无根树,求满足以下条件的四元组 (a, b, c, d) 的个数: 1. 1 ≤ a < b ≤ n 2. 1 ≤ c < d ≤ n 3. 不存在一个点,使得这个点同时在点 a 到点 b 的最短路和点 c 到点 d 的最短路上.1.2 输入格式 第一行一个数 n . 接下来 n − 1 行,每行两个数 s, t ,表示一条连接 a 和 b 的边.1.3 输出格式 输出满足条件的四元组的个数.1.4 样例输入 4 1 2 2 3 3 41.5 …
Description 设P(n)为从(0,0)移动到点(n,0)的不同路径数目,移动的方式有以下三种:(x,y)->(x+1,y-1),(x,y)->(x+1,y),(x+y)->(x+1,y+1),并且路径不能和第四象限有交集.求P(n),并对10^9+7取模. Input 第一行一个整数T,表示数据组数. 对于每组数据,一行一个整数n. Output 对于每组数据,输出答案. Data Range 20%:n≤10:50%:n≤10000:100%:n≤106,T≤10. Solu…
题目链接: https://jzoj.net/senior/#main/show/5926 题目: 题解: 显然最小的最大路径在最小生成树上(最小生成树=最小瓶颈生成树) 于是我们建出kruskal重构树,两个节点的d值就是lca代表的边的边权,问题转化为对于每个lca计算以它为lca的且满足$|c_u-c_v|$的点对的个数 对于每个lca我们枚举 size 较小的那棵子树内的点(每次选择size较小的暴力计算就是启发式合并),算出在另一棵子树中能与它组成点对的点的个数.这个问题实际上就是询问…
Description Input Output Sample Input 5 101 12 23 34 45 5 Sample Output 4 Data Constraint Hint 开long long 100分,不开10分也是醉了. long long 卡90分的头一次见. 暴力: 直接O(N^2)不说了. 部分分:x, y坐标递增,设f[i]表示i号点对之前的贡献,那么f[i] = f[i-1] + (abs(x[i] - x[i-1])+ abs(y[i] - y[i-1])) *…
幸亏考场上没考这个,T1结论T2不会T3板子.估计会死的更惨 T1是学长讲过的Cat变式,沿直线y=x+1翻折方案数相减,现推,15分钟弄出来没什么问题. 只要不要把m,n读反就行. T3是个tarjan缩scc的板子.复习一遍,默写一遍,板子炸了. 然后拓扑也炸了.就最麻烦的建边没挂. 数据范围及其愚蠢,但是的确没有n2以下的做法.数组开够注意细节即可. T2我感觉starsing写的相当好,至少我对题解里莫名其妙的二分感到迷茫. 没有做,没时间了,题目不错,是个表达式化简的初级题目,挺好的.…
两机房分开考试.拿到了令人orz的A卷. 15本校+3外校=18人参加 排名第7,没前途.大不了去第二机房... skyh也很强了.tdcp拿来一个诡异的. 86,85,79.然后是我垃圾的.在后面差距也不大...(本来就没几分) 题很好.子任务评测很公正,分数也有梯度,知识点考得也不错. (而且超喜欢那个题目背景里几乎与题目毫无关联的英文诗) 就是我考得差了点. 这次考试长了10分钟,对我来说还挺关键的. 过一遍三道题,T1是组合计数什么的,数据范围不大,应该还可做. T2是一个看起来怪裸的欧…
这次考试后面心态爆炸了...发现刚了2h的T2是假的之后就扔掉了,草率地打了个骗分 T1只会搜索和m=0 最先做的T3,主要是发现部分分很多,当时第一眼看上去有87分(眼瞎了). 后来想了想,感觉一条链不可做,69分 码出来69分之后去测了一下第二个大样例,发现跑了2.6s,心态爆炸,预计得分47 出分之后发现把4000的22分拿到了,有69分. 于是成功凭借T3苟进rk3 T1. 是个容斥好题,考场上一直在想如何对点容斥,想到考试结束也没想出来. 正解是容斥边. T2. 欧拉回路 T3. 考试…
T1 字符串 卡特兰数 设1为向(1,1)走,0为向(1,-1)走,限制就是不能超过$y=0$这条线,题意转化为从(0,0)出发,走到(n+m,n-m)且不越过$y=0$,然后就裸的卡特兰数,$ans=C(n+m,n)-C(n+m,m-1)$ #include<iostream> #include<cstdio> #include<cstring> #define mod 20100403 #define ll long long using namespace std…
题目 小W最近迷上了日本动漫,每天都有无数部动漫的更新等着他去看,所以他必须将所有的动漫排个顺序,当然,虽然有无数部动漫,但除了1号动漫,每部动漫都有且仅有一部动漫是它的前传(父亲),也就是说,所有的动漫形成一个树形结构.而动漫的顺序必须满足以下两个限制: 1.一部动漫的所有后继(子孙)都必须排在它的后面: 2.对于同一部动漫的续集(孩子),小W喜爱度高的须排在前面. 光排序小W还不爽,他想知道一共有多少种排序方案,并且输出它mod 10007的答案. 分析 这个题目有两个限制: 1.先父亲后儿…
题目 为了封印辉之环,古代塞姆利亚大陆的人民在异空间中建造了一座设备塔. 简单的说,这座设备塔是一个漂浮在异空间中的圆柱体,圆柱体两头的圆是计算核心,而侧面则是 传输信息所用的数据通道,划分成N *m 个区块. 然而,随着工作的继续进行,他们希望把侧面的一部分区块也改造成其他模块.然而,任何时候都 必须保证存在一条数据通道,能从圆柱体的一端通向另一端. 由于无法使用辉之环掌控下的计算系统,他们寻求你的帮助来解决这个问题.他们将逐个输入想要 改造的区域,而你则执行所有可行的改造并忽略可能导致数据中…
题目 在游戏厅大赚了一笔的Randy 终于赢到了他想要的家具.乘此机会,他想把自己的房间好好整理一 下. 在百货公司,可以买到各种各样正方形的地砖,为了美观起见,Randy 不希望同样颜色的正方形地 砖相邻.所以他找到了Tio 来帮忙解决这件事情. Tio 很快解决了这个任务.然而,出于某种强迫症,她希望在地上按照长宽划分成网格后,逐行逐 列每一块的颜色组成的序列的字典序最小.她希望你帮忙验证一下她的方案. 分析 贪心, 逐行逐列枚举, 枚举当前点(当前点没有字母)放什么字母,根据最优策略,显然…
题目 给定一个n行m列的字符矩阵,'.'代表空地,'X'代表障碍.移动的规则是:每秒钟以上下左右四个方向之一移动一格,不能进入障碍. 计算:在空地中随机选择起点和终点(可以重合,此时最短耗时为0),从起点移动到终点最短耗时的平均值. 每一行每一列至多有1个障碍,并且障碍不在对角线方向相邻.以下矩阵是不合法的: .X X. 分析 50%的数据,全都是空地,答案就是所有两点间的曼哈顿距离和. 很容易求,\({第i行空地的数量}*{第j行空地的数量}*|i-j|*2\) 因为每一行每一列至多有1个障碍…
题目 有N棵小草,编号0至N-1.奶牛Bessie不喜欢小草,所以Bessie要用剪刀剪草,目标是使得这N棵小草的高度总和不超过H.在第0时刻,第i棵小草的高度是h[i],接下来的每个整数时刻,会依次发生如下三个步骤: (1)每棵小草都长高了,第i棵小草长高的高度是grow[i]. (2)Bessie选择其中一棵小草并把它剪平,这棵小草高度变为0.注意:这棵小草并没有死掉,它下一秒还会生长的. (3)Bessie计算一下这N棵小草的高度总和,如果不超过H,则完成任务,一切结束, 否则轮到下一时刻…
题目 在一个R行C列的表格里,我们要选出3个不同的单元格.但要满足如下的两个条件: (1)选中的任意两个单元格都不在同一行. (2)选中的任意两个单元格都不在同一列. 假设我们选中的单元格分别是:A,B,C,那么我们定义这种选择的"费用"= f[A][B] + f[B][C] + f[C][A]. 其中f[A][B]是指单元格A到单元格B的距离,即两个单元格所在行编号的差的绝对值 + 两个单元格所在列编号的差的绝对值.例如:单元格A在第3行第2列,单元格B在第5行第1列,那么f[A][…
题面 65 看到路径问题,就想到了套路:点分治. 对于一个分治中心,先把在其子树的结点的sum和mn求出来,分别表示该节点到分治中心的边权和和点权最小值. 然后把mn离散化,并插入权值线段树中,以sum为关键字. 为了解决最小值的问题,我们需要使得最小值在某棵子树中,然后枚举其他子树中mn值比他大的结点的贡献. 首先我想到的就是一棵一棵子树的增量法,但是因为每棵子树一进一出,所以在菊花图中的复杂度到达平方. 然后我就想到了先把这棵树先加进去,枚举一棵子树,然后再撤销掉线段树中的这棵子树. 枚举分…
题面 对于一个字符集大小为C的字符串P,我们可以将任意两种字符在P中的位置进行互换,例如P=abcba,我们交换a,b就变为bacab,交换a,d就变为dbcbd,交换可以进行任意次.若交换后P变为了字符串Q,则我们称Q与P是匹配的. 现在给定两个字符集大小为C的字符串S,T,请你求出S中有多少个连续子串与T是匹配的. 100%的数据:1 <= n,m,C <= 10^6 , Case = 3 100 考虑哈希, 我们给一个长度为m的序列,规定它的哈希值为:\(\sum_{c \belong…
题面 养鸽人要监视他的鸽子,有n只鸽子站在平面上,他可以在m个给定的点上设置监视器,如果一只鸽子在某个监视器上或者在两个监视器所连直线上或者在三个监视器所连直线的三角形内则其就咕咕咕了,现在养鸽人要让所有鸽子咕咕咕,请问他最少需要设置多少监视器. 对于100%的数据n≤100000,m≤500,坐标绝对值不超过10的9次方. 100 首先转化一下题意,就是选取尽量少的点,然后生成一个凸包,包住给定的一个凸包. 显然在给定凸包内的点是没有用处的. 对于不在给定凸包内的点,我们枚举它们: 对于一个点…
题目描述 题解 镇♂男则反 如果没有操作3很好办,反着做维护操作1的次数即可 实际上一次操作3的贡献是zi*(∑i到操作1位置的距离) 维护一下即可O(n^4) code #include <bits/stdc++.h> #define fo(a,b,c) for (a=b; a<=c; a++) #define fd(a,b,c) for (a=b; a>=c; a--) #define max(a,b) (a>b?a:b) #define ll long long #de…
题目描述 分析 考虑自底向上贪心 \(f[x][k]\) 表示 \(x\) 下面距离为 \(k\) 的需要灭火器的房间数,\(g[x][k]\) 表示 \(x\) 下面距离为 \(k\) 的多余灭火器数 每个灭火器和房间的匹配在 \(lca\) 处处理 每次假设子树里已经最优了,那么 \(f[x][k]\) 一定要用 \(g[x][0]\) 填满 然后距离为 \(k\) 的一定会在 \(x\) 处匹配掉,否则到上面不会更 优(可以交叉互换) 在不存在距离为 \(k\) 的前提下,\(k-1\)…
字符串 题解 没看出catalan怎么办 dp打表啊! 考虑大力dp拿到30分好成绩!顺便收获一张表 打表发现$C_{n+m}^{m}-C_{n+m}^{m-1}$ 仔细观察然后发现其实就是之前的网格那个题 那么我们回顾一下网格那个题 先看最简单的n==m情况 求左下角走到右上角方案数,不能经过中间那条线 考虑大力容斥,首先总方案数$C_{2*n}^{n}$很好求,那么我们现在任务就是求不合法的 我们考虑到如果经过中间那条线我们至少要经过红色那条线,考虑求从左下角超过那条蓝线(不合法)方案数,…
基础实验 3-2.5 堆栈模拟队列 (25 分) 设已知有两个堆栈S1和S2,请用这两个堆栈模拟出一个队列Q. 所谓用堆栈模拟队列,实际上就是通过调用堆栈的下列操作函数: int IsFull(Stack S):判断堆栈S是否已满,返回1或0: int IsEmpty (Stack S ):判断堆栈S是否为空,返回1或0: void Push(Stack S, ElementType item ):将元素item压入堆栈S: ElementType Pop(Stack S ):删除并返回S的栈顶…