20191211 HNOI2017模拟赛 C题】的更多相关文章

题目: 分析: 开始觉得是神仙题... 然后发现n最多有2个质因子 这说明sm呢... 学过物理的小朋友们知道,当一个物体受多个不同方向相同的力时,只有相邻力的夹角相等,受力就会平衡 于是拆扇叶相当于在风扇上等分角度 考虑贪心的话,就是一次拆越少,也就是角度分越大越好 那就要用到质因子了 先将编号改为(0~n-1) 首先一个质因子p的情况很好处理,当一个扇叶x掉下时,必须拆下y(其中y mod n/p = x mod n/p)的扇叶 于是直接打标记就好了 然后就是2个质因子的情况 那么一个风扇叶…
题目: 分析: 好难好难... 下来听神仙讲.. 每一个长度为n-2的prufer序列一一对应一棵大小为n的树... 每个点在序列中的出现次数为该点的度数减一 哦??? ... 哦... prufer序列貌似忘得差不多了诶.. 于是问题就变成在长度为n-2的序列上放1~n,每个元素有次数限制... n^4DP...100卡一卡就跑得过... f [ i ] [ j ] [ k ]表示考虑前 i 个数,用了 j 个,一共占了prufer序列 k 个位置... 然后组合数加加减减... 还是自己太菜…
算是一道比较新颖的题目 尽管好像是两年前的省选模拟赛题目.. 对于20%的分数 可以进行爆搜,对于另外20%的数据 因为k很小所以考虑上状压dp. 观察最后答案是一个连通块 从而可以发现这个连通块必然存在一个深度最浅的点且唯一 所以随便找一个点做根然后对自己子树内寻找答案就可以是正确的. 考虑另外的30%的数据k<=3 可是颜色数最多可以有n个 不知道哪个是最终答案. 一次状压dp的复杂度:\(2^{2k}\cdot n\) 容易得到可以暴力枚举一下 然后要做 \(C(n,3)\) 这样会TLE…
我是发了疯才来写这道题的 我如果用写这道题的时间去写dp,我估计我能写上三四道 可怕的数据结构题 题目 这道题的鬼畜之处在于实在是不太好写 我们看到要求离树根尽量的近,所以我们很容易就能想到树上倍增,所以我们需要有一种能快速求出一条路径能被多少条给出路径完全覆盖 我们知道起点是固定的,要求完全覆盖的话我们必须要保证给定的路径的一个端点在起点的子树里,同时还要求另一个端点在路径的终点的外部,也就是说路径的\(LCA\)深度小于等于终点 于是这样就可以写一个还算可观的\(40\)分暴力了 这是考场上…
题目描述 LYK出了道水题. 这个水题是这样的:有两副牌,每副牌都有n张. 对于第一副牌的每张牌长和宽分别是xi和yi.对于第二副牌的每张牌长和宽分别是aj和bj.第一副牌的第i张牌能覆盖第二副牌的第j张牌当且仅当xi>=aj并且yi>=bj.(注意牌不能翻转)当然一张牌只能去覆盖最多一张牌,而不能覆盖好多张. LYK想让两副牌的各n张一一对应叠起来.它想知道第二副牌最多有几张能被第一副牌所覆盖. 输入格式(water.in) 第一行一个数n. 接下来n行,每行两个数xi,yi. 接下来n行,…
Time 7:50 AM -> 11:15 AM 感觉今天考完后,我的内心是崩溃的 试题 考试包 T1: 首先看起来是个贪心,然而,然而,看到那个100%数据为n <= 2000整个人就虚了,发呆接近两小时后意识到这个应该是个dp,然后开始考虑dp方程,脑残把dp打成了n^3,果断上天..而且在转移过程中推错多打了一个-1,于是3个wa 1个ac 6个TLE ,10分滚粗 T1 dp 正解: 使用二维dp记录当前状态,dp[i][j]表示在前i个妖精中选择了j个妖精的最小时间,转移过程如下:…
考场上随手构造了一组数据把自己卡掉了 然后一直都是掉线状态了. 最后发现这个东西不是subtask -1的情况不多 所以就没管无解直接莽 写题有点晚 故没调出来.. 考虑怎么做 容易想到建立AC自动机 然后不能跑到结尾节点 fail是结尾节点的也不能跑. 把那些节点抽出来就可以随便跑了 题目描述非常丧心病狂 两个字符串相等描述的莫名其妙. 不过这道题的本意让我们求出两端在环内的字符串个数. 发现如果存在不是简单环的话是无解的 如果出现两个环的路径上还是环的话也同时无解. 对于前者 一个非常妙的t…
题意 给定一棵有n个节点的无根树,树上的每个点有一个非负整数点权.定义一条路径的价值为路径上的点权和-路径上的点权最大值. 给定参数P,我!=们想知道,有多少不同的树上简单路径,满足它的价值恰好是P的倍数. 注意:单点算作一条路径:u!=v时,(u,v)和(v,u)只算一次. 题解 树上路径统计,解法是点分治.点分的时候求出根到每个点路径最大值和权值和.排一序,然后开个桶,就能计算了.去重就套路的减去没棵子树里面的答案. CODE #include <bits/stdc++.h> using…
其实直接暴力O(n3)DP+O2O(n^3)DP+O_2O(n3)DP+O2​优化能过- CODE O(n3)O(n^3)O(n3) 先来个O(n3)O(n^3)O(n3)暴力DP(开了O2O_2O2​)100分代码(极限数据0.5s0.5s0.5s) #include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int MAXN = 2005, INF = 0x…
山东多校联合模拟赛 day1 题不难 rect [问题描述] 给出圆周上的 N 个点, 请你计算出以这些点中的任意四个为四个角,能构成多少个矩形. 点的坐标是这样描述的, 给定一个数组 v[1..N], 假设圆心为(0, 0), 圆的周长 C=∑v[1..N] , 第一个点坐标为(0, C/(2π)). 从第一个点开始, 顺时针沿圆周走 v1 个单位长度,此时坐标为第二个点的坐标,再走 v2 个单位长度,此时为第三个点的坐标,当走完 v1, v2..vi个距离后,为第 i+1 个点的坐标(全过程…