今天是[LnOI2019]长脖子鹿省选模拟赛的时间,小编表示考的不怎么样,改了半天也只会改第一题,那也先呈上题解吧. T1:P5248 [LnOI2019SP]快速多项式变换(FPT) 一看这题就很手软,没有告诉具体多项式到底有多少项,只好一个一个暴力枚举,但是这也不现实,于是小编就开始骗分,还一分也没骗着.赛后小编看到的题解,才明白这是一道转进制的题,将十进制转换成m进制,m^0,m^1,m^2这不刚好对应上m进制的单位吗?所得结果刚好就是问题的解.那么用短除法模拟算出m进制下f(m)的每一位…
传送门 听说比赛的时候T4T4T4标程锅了??? WTF换我时间我要写T3啊 于是在T4T4T4调半天无果的情况下260pts260pts260pts收场真的是tcltcltcl. T1 快速多项式变换(FPT) 题意:给两个整数表示m,f(m)m,f(m)m,f(m),要求你构造一个nnn次多项式f(x)f(x)f(x),nnn自己定大小,要求所有系数非负,最高项系数不为000. 思路: 直接mmm进制分解就完了. 代码: #include<bits/stdc++.h> #define ri…
快速多项式 做法:刚拿到此题有点蒙,一开始真没想出来怎么做,于是试着去自己写几个例子. 自己枚举几种情况之后就基本看出来了,其实本题中 n 就是f(m)在m进制下的位数,每项的系数就是f(m)在m进制下对应的数字. 然后... code: #include <iostream> #include <cstdio> #include <cstring> using namespace std; //Mystery_Sky // #define ll long long l…
t1-快速多项式变换(FPT) 题解 看到这个\(f(x)=a_0+a_1x+a_2x^2+a_3x^3+ \cdots + a_nx^n\)式子,我们会想到我们学习进制转换中学到的,那么我们就只需要\(m\)转换成\(n\)进制就可以了. ac代码 #include <bits/stdc++.h> using namespace std; long long n, m, a[1005]; int cnt; int main() { cin >> n >> m; whi…
这里来一发需要开毒瘤优化,并且几率很小一遍过的模拟退火题解... 友情提醒:如果你很久很久没有过某一个点,您可以加上特判 可以像 P1337 [JSOI2004]平衡点 / 吊打XXX 那道题目一样 如果不会退火可以拿那道题练手... 个人看来这题和那题差不多,主要区别在get_ans()的函数上面 如何get_ans呢? (图很垃圾,别介意) 先看这张图: 假设中间的黑点是目前确定的圆心,要get的ans是离这个点最远的圆上的点 那么初中数学老师就会教你:距离=两个圆心的距离+选中圆的半径 像…
本片题解设计两种解法 果然是签到题... 因为返回值问题T了好久... 第一眼:搜索大水题? 然后...竟然A了 #include<cstdio> #include<queue> #include<iostream> #include<cstring> #define int long long using namespace std; inline int read(){ ,f=;char chr=getchar(); ;chr=getchar();} )…
题目背景 众周所知,在西洋棋中,我们有城堡.骑士.皇后.主教和长脖子鹿. 题目描述 如图所示,西洋棋的“长脖子鹿”,类似于中国象棋的马,但按照“目”字攻击,且没有中国象棋“别马腿”的规则.(因为长脖子鹿没有马腿) 给定一个N * MN∗M,的棋盘,有一些格子禁止放棋子.问棋盘上最多能放多少个不能互相攻击的长脖子鹿. 输入格式 输入的第一行为两个正整数NN,MM,KK.其中KK表示禁止放置长脖子鹿的格子数. 第22~第K+1K+1行每一行为两个整数Xi, YiXi,Yi,表示禁止放置的格子. 输出…
$ \color{#0066ff}{ 题目描述 }$ 如图所示,西洋棋的"长脖子鹿",类似于中国象棋的马,但按照"目"字攻击,且没有中国象棋"别马腿"的规则.(因为长脖子鹿没有马腿) 给定一个\(N * M\),的棋盘,有一些格子禁止放棋子.问棋盘上最多能放多少个不能互相攻击的长脖子鹿. \(\color{#0066ff}{输入格式}\) 输入的第一行为两个正整数\(N\),\(M\),\(K\).其中\(K\)表示禁止放置长脖子鹿的格子数. 第…
很有意思的题目. 题目背景 加特林轮盘赌是一个养生游戏. 题目描述 与俄罗斯轮盘赌等手枪的赌博不同的是,加特林轮盘赌的赌具是加特林. 加特林轮盘赌的规则很简单:在加特林的部分弹夹中填充子弹.游戏的参加者坐在一个圆桌上,轮流把加特林对着自己的头,扣动扳机一秒钟.中枪的自动退出,坚持到最后的就是胜利者. 我们使用的是2019年最新技术的加特林,他的特点是无需预热.子弹无限,每一个人,在每一回合,中枪的概率是完全相同的 \(P_0\). 每局游戏共有 \(n\) 只长脖子鹿,从1长脖子鹿开始,按照编号…
题目背景 众周所知,在西洋棋中,我们有城堡.骑士.皇后.主教和长脖子鹿. 题目描述 如图所示,西洋棋的"长脖子鹿",类似于中国象棋的马,但按照"目"字攻击,且没有中国象棋"别马腿"的规则.(因为长脖子鹿没有马腿) 给定一个N * M,的棋盘,有一些格子禁止放棋子.问棋盘上最多能放多少个不能互相攻击的长脖子鹿. 输入输出格式 输入格式: 输入的第一行为两个正整数N,M,K.其中K表示禁止放置长脖子鹿的格子数. 第22~第K+1行每一行为两个整数 X…
洛谷比赛 「EZEC」 Round 4 T1 zrmpaul Loves Array 题目描述 小 Z 有一个下标从 \(1\) 开始并且长度为 \(n\) 的序列,初始时下标为 \(i\) 位置的数字为 \(i\).有 \(m\) 个操作,每个操作会是以下四种之一. 1 对序列从小到大进行排序. 2 对序列从小到大进行排序后将其翻转,(译者注:就是从大到小排序). 3 x y 将下标为 \(x,y\) 的数交换位置.保证 \(x\neq y\) 且 \(1\le x,y\le n\). 4 将…
洛谷P2891 Dining P1402 酒店之王[类二分图匹配]题解+代码 酒店之王 题目描述 XX酒店的老板想成为酒店之王,本着这种希望,第一步要将酒店变得人性化.由于很多来住店的旅客有自己喜好的房间色调.阳光等,也有自己所爱的菜,但是该酒店只有p间房间,一天只有固定的q道不同的菜. 有一天来了n个客人,每个客人说出了自己喜欢哪些房间,喜欢哪道菜.但是很不幸,可能做不到让所有顾客满意(满意的条件是住进喜欢的房间,吃到喜欢的菜). 这里要怎么分配,能使最多顾客满意呢? 输入格式: 第一行给出三…
洛谷 P2194 HXY烧情侣[Tarjan缩点] 分析+题解代码 题目描述: 众所周知,HXY已经加入了FFF团.现在她要开始喜(sang)闻(xin)乐(bing)见(kuang)地烧情侣了.这里有n座电影院,n对情侣分别在每座电影院里,然后电影院里都有汽油,但是要使用它需要一定的费用.m条单向通道连接相邻的两对情侣所在电影院.然后HXY有个绝技,如果她能从一个点开始烧,最后回到这个点,那么烧这条回路上的情侣的费用只需要该点的汽油费即可.并且每对情侣只需烧一遍,电影院可以重复去.然后她想花尽…
U5442 买 题目提供者bqsgwys 标签 树形结构 树的遍历 洛谷原创 题目背景 小E是个可爱的电路编码员. 题目描述 一天小E又要准备做电路了,他准备了一个电路板,上面有很多个电路元器件要安装,于是他跑到了村口某电子城去买.小E详细查看了某电子城的地图,发现自己要去地下一层,共有N个摊铺,任意两个摊铺之间由道路直接或间接相连,一共N-1条道路,道路是双向的.小E一开始处于1号摊铺的位置,由于电子城里很挤,他想走的尽量少. 输入输出格式 输入格式: 第一行一个整数N,代表摊铺的数目. 接下…
P1470 最长前缀 Longest Prefix 题目描述 在生物学中,一些生物的结构是用包含其要素的大写字母序列来表示的.生物学家对于把长的序列分解成较短的序列(即元素)很感兴趣. 如果一个集合 P 中的元素可以通过串联(元素可以重复使用,相当于 Pascal 中的 “+” 运算符)组成一个序列 S ,那么我们认为序列 S 可以分解为 P 中的元素.元素不一定要全部出现(如下例中BBC就没有出现).举个例子,序列 ABABACABAAB 可以分解为下面集合中的元素: {A, AB, BA,…
洛谷 1373 dp 这题还不算太难,,当初看的时候不是很理解题意,以为他们会选择两条不同的路径,导致整体思路混乱 传送门 其实理解题意和思路之后还是敲了不短的时间,一部分身体原因再加上中午休息不太好,整个人思路较乱,靠本能打了一遍代码毫无头绪.恢复了一下状态重新开打,才算是A掉 题解 设dp[i][j][l][p]为当前走到第(i, j)位,当前(a - b) % k 为l,本次是第p个人取得药,p = 0为a,p = 1 为b, 此时的方案数 则 dp[i][j][l][1] += dp[i…
https://www.luogu.org/problemnew/show/P5030 写的第一道黑色题,图建对了. 隐约觉得互相攻击要连边,规定从奇数行流向偶数行. 二分图最大独立集=二分图顶点总数-二分图最大匹配 因为把最大匹配d从顶点总数n中去掉,有n-2d个点. 从被去掉的点中,每个匹配重新加一个回来,加了d个. 所求为n-d. 估计顶点上限,40000+2 然后每个顶点最多连出8条边(其实只有奇数行连出) 每个顶点要么连源要么连汇 留出反向边的位置. #include<bits/std…
P1470 最长前缀 Longest Prefix 73通过 236提交 题目提供者该用户不存在 标签USACO 难度普及/提高- 提交  讨论  题解 最新讨论 求大神指导,为何错? 题目描述 在生物学中,一些生物的结构是用包含其要素的大写字母序列来表示的.生物学家对于把长的序列分解成较短的序列(即元素)很感兴趣. 如果一个集合 P 中的元素可以通过串联(元素可以重复使用,相当于 Pascal 中的 "+" 运算符)组成一个序列 S ,那么我们认为序列 S 可以分解为 P 中的元素.…
/*暴力50*/ #include<iostream> #include<cstdio> #include<cstring> #define maxn 100010 #define ll long long using namespace std; ll n,k,f[maxn][],a[maxn],ans; ll init(){ ll x=,f=;char s=getchar(); ;s=getchar();} +s-';s=getchar();} return x*f…
可以发现只有当两个序列中都没有重复元素时(1-n的排列)此种优化才是高效的,不然可能很不稳定. 求a[] 与b[]中的LCS 通过记录lis[i]表示a[i]在b[]中的位置,将LCS问题转化为最长上升子序列问题,转化方法如下: for(int i=1;i<=n;i++){ local[b[i]]=i; } for(int i=1;i<=n;i++){ lis[i]=local[a[i]]; } 当序列中有元素重复时,我们们需要保证对于每个a[i]所记录的位置必须是逆序的,以保证一个元素只取一…
题目链接 \(Description\) 给定一个长为n的序列,每次可以反转 \([l,r]\) 区间,代价为 \(r-l+1\).要求在\(4*10^6\)代价内使其LIS长度最长,并输出需要操作的数量及每个反转操作. \(n\leq32000\). \(Solution\) 显然,需要在4e6的代价内将\(1\sim n\)尽可能排好序.(而且不一定要反转一大段区间,可以交换相邻元素实现一个元素的移动) Subtask2 \(n\leq1000\) 可以用冒泡排序将每个元素放到应放的位置上,…
https://www.luogu.org/problemnew/show/P2766 注:题目描述有误,本题求的是最长不下降子序列 方案无限多时输出 n 网络流求方案数,长见识了 第一问: DP 同时得到f[i] 表示 以第i个数为开头的最长不下降子序列长度 第二问: 每个点拆出2个点 i<<1,i<<1|1,之间连流量为1的边 如果f[i]==最长长度,源点向i<<1连流量为1的边 如果f[i]==1,i<<1|1向汇点连流量为1的边 如果 i<j…
传送门 其实和最长k可重区间集问题差不多诶…… 把这条开线段给压成x轴上的一条线段,然后按上面说的那种方法做即可 然而有一个坑点是线段可以垂直于x轴,然后一压变成一个点,连上正权环,求最长路……然后spfa他就死了…… 怎么解决呢……把每一个区间的左右端点坐标扩大两倍,如果相等就$--l[i]$,否则$++l[i]$,这样的话能保证本来不能覆盖的点仍不能覆盖,本来可以覆盖的点仍可以覆盖 似乎讲不清楚……感性理解一下好了…… //minamoto #include<iostream> #incl…
传送门 第一问直接$dp$解决,求出$len$ 然后用$f[i]$表示以$i$为结尾的最长不下降子序列长度,把每一个点拆成$A_i,B_i$两个点,然后从$A_i$向$B_i$连容量为$1$的边 然后考虑$f[i]$,如果$f[i]==1$,则从$s$向$A_i$连边,如果$f[i]==len$,那么从$B_i$向$t$连边 然后将每一个$j<i,f[j]+1==f[i],a[j]\leq a[i]$的$j$向$i$连边 以上容量全为$1$ 建完图之后跑一个最大流 这样可以保证分层图里选出来的不…
题目大意:输入$n$个正整数,($1\leq n\leq 10000$),要求输出最长的连号的长度.(连号指从小到大连续自然数) 题解:考虑从小到大连续自然数差分为$1$,所以可以把原数列差分(后缀自动机不怎么会写啊),查询串为$1,11,111,\dots,111\dots(n-1个1)$,把它们插入到$AC$自动机中,然后查询即可,原数列差分不为$0,1$时赋为$0$(因为不对答案有影响) 卡点:1.原序列差分的数不为$0,1$时会挂... C++ Code:($AC$自动机2018-8-1…
题目描述 给定一棵 nn 个点的带权树,结点下标从 11 开始到 NN .寻找树中找两个结点,求最长的异或路径. 异或路径指的是指两个结点之间唯一路径上的所有节点权值的异或. 输入输出格式 输入格式: 第一行一个整数 NN ,表示点数. 接下来 n-1n−1 行,给出 u,v,wu,v,w ,分别表示树上的 uu 点和 vv 点有连边,边的权值是 ww . 输出格式: 一行,一个整数表示答案. 输入输出样例 输入样例#1: 4 1 2 3 2 3 4 2 4 6 输出样例#1: 7 说明 最长异…
最长路 #include <iostream> #include <cstdio> #include <cstring> #include <queue> #include <vector> using namespace std; //Mystery_Sky // #define maxn 1000010 #define maxm 5000050 #define INF 0x3f3f3f3f queue <int> q; int i…
pre:http://www.cnblogs.com/lokiii/p/8435499.html 和最长k可重区间集问题差不多,也就是价值的计算方法不一样,但是注意这里可能会有x0==x1的情况也就是l==r的情况,然后就TTTTTLE. 其实处理方法很粗暴,因为是开线段,所以可以把它扩大一倍,然后就可以取精度差,对于l!=r,l++,否则l--. 然后正常建模即可. 这个建模大概是用了取补集的思想,把覆盖和没覆盖相转化. #include<iostream> #include<cstd…
死于开小数组的WA?! 第一问n方dp瞎搞一下就成,f[i]记录以i结尾的最长不下降子序列.记答案为mx 第二问网络流,拆点限制流量,s向所有f[i]为1的点建(s,i,1),所有f[i]为mx(i+n,t,1),然后对于j<i&&a[j]<=a[i]&&f[i]==f[j]+1连接(j+n,i,1)表示可以转移,然后跑dinic记录答案ans 第三问也是网络流但是不用重建图,直接在残量网络上加上(1,1+n,inf)(s,1,inf),如果f[n]==mx,(…
题目背景 DJL为了避免成为一只咸鱼,来找Johann学习怎么求最长公共子序列. 题目描述 经过长时间的摸索和练习,DJL终于学会了怎么求LCS.Johann感觉DJL孺子可教,就给他布置了一个课后作业: 给定两个长度分别为n和m的序列,序列中的每个元素都是正整数.保证每个序列中的各个元素互不相同.求这两个序列的最长公共子序列的长度. DJL最讨厌重复劳动,所以不想做那些做过的题.于是他找你来帮他做作业. 输入输出格式 输入格式: 第一行两个整数n和m,表示两个数列的长度. 第二行一行n个整数a…