D.出题人的手环】的更多相关文章

链接 [https://ac.nowcoder.com/acm/contest/358/D] 题意 链接:https://ac.nowcoder.com/acm/contest/358/D 来源:牛客网 题目描述 出题人的妹子送了出题人一个手环,这个手环上有 n 个珠子,每个珠子上有一个数. 有一天,出题人和妹子分手了,想把这个手环从两个珠子间切开,并按顺时针顺序展开成一条链. 可以发现,这条链一共有 n 种可能性.求这 n 种可能性的逆序对数之积模 1000000007. 输入描述: 第一行一…
链接:https://ac.nowcoder.com/acm/contest/358/D来源:牛客网 出题人的手环 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 524288K,其他语言1048576K 64bit IO Format: %lld 题目描述 出题人的妹子送了出题人一个手环,这个手环上有 n 个珠子,每个珠子上有一个数. 有一天,出题人和妹子分手了,想把这个手环从两个珠子间切开,并按顺时针顺序展开成一条链. 可以发现,这条链一共有 n 种可能性.求这 n 种可能性…
题目链接(https://ac.nowcoder.com/acm/contest/358/D) 题目描述 出题人的妹子送了出题人一个手环,这个手环上有 n 个珠子,每个珠子上有一个数. 有一天,出题人和妹子分手了,想把这个手环从两个珠子间切开,并按顺时针顺序展开成一条链. 可以发现,这条链一共有 n 种可能性.求这 n 种可能性的逆序对数之积模 1000000007. 输入描述: 第一行一个数 n,表示珠子个数. 接下来一行 n 个数,以顺时针顺序给出每个珠子上的整数 样例输入 4 1 3 2…
链接:https://ac.nowcoder.com/acm/contest/358/D 题意: 出题人的妹子送了出题人一个手环,这个手环上有 n 个珠子,每个珠子上有一个数. 有一天,出题人和妹子分手了,想把这个手环从两个珠子间切开,并按顺时针顺序展开成一条链. 可以发现,这条链一共有 n 种可能性.求这 n 种可能性的逆序对数之积模 1000000007. 思路: 离散化加树状数组,先求出第一种情况的逆序对,之后每次将最后一个数减去比他大的,加上比他小的就是下一个序列的逆序对数. 比赛想到思…
链接:https://ac.nowcoder.com/acm/contest/358/B来源:牛客网 出题人的女装 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 524288K,其他语言1048576K 64bit IO Format: %lld 题目描述 出题人早上起床就打算穿衣服,他有两箱衣服,因为懒,他在这两天只打算打开一个箱子. 两个箱子中一个有n件衣服,其中有x件女装,另一个有m件衣服,其中有y件女装. 出题人在第一天随机挑一个箱子后,接下来的两天就会从此箱子中随机找…
链接:https://ac.nowcoder.com/acm/contest/358/A来源:牛客网 题目描述 众所周知,每个人都有自己的rp值(是个非负实数),膜别人可以从别人身上吸取rp值. 然而当你膜别人时,别人也会来膜你,互膜一段时间后,你们就平分了两人原有的rp值,当你膜过一个人之后,你就不能再膜那个人了 出题人发现自己的rp值为x,出题人周围有n个人,第i个人的rp值为a[i] 你要选择膜哪些人和膜人的顺序,使出题人的最终rp值最大 输入描述: 第一行两个数n,x,人数和出题人的初始…
P3299 [SDOI2013]保护出题人 题目描述 出题人铭铭认为给SDOI2012出题太可怕了,因为总要被骂,于是他又给SDOI2013出题了. 参加SDOI2012的小朋友们释放出大量的僵尸,企图攻击铭铭的家.而你作为SDOI2013的参赛者,你需要保护出题人铭铭. 僵尸从唯一一条笔直道路接近,你们需要在铭铭的房门前放置植物攻击僵尸,避免僵尸碰到房子. 第一关,一只血量为\(a_1\)点的墦尸从距离房子\(x_1\)米处速接近,你们放置了攻击力为\(y_1\)点/秒的植物进行防御:第二关,…
[BZOJ3203][Sdoi2013]保护出题人 Description Input 第一行两个空格隔开的正整数n和d,分别表示关数和相邻僵尸间的距离.接下来n行每行两个空格隔开的正整数,第i + 1行为Ai和 Xi,分别表示相比上一关在僵尸队列排头增加血量为Ai 点的僵尸,排头僵尸从距离房子Xi米处开始接近. Output 一个数,n关植物攻击力的最小总和 ,保留到整数. Sample Input 5 2 3 3 1 1 10 8 4 8 2 3 Sample Output 7 HINT 第…
[BZOJ3203]保护出题人(动态规划,斜率优化) 题面 BZOJ 洛谷 题解 在最优情况下,肯定是存在某只僵尸在到达重点的那一瞬间将其打死 我们现在知道了每只僵尸到达终点的时间,因为僵尸要依次打死. 所以我们假设血量的前缀和是\(s_i\) 那么我么必须在它到达的时间\(t_i\)之前打出总共不少于\(s_i\)的伤害. 而植物的攻击力是固定的,意味着时间-伤害的坐标系上是一条直线. 那么现在相当于在时间-伤害的坐标系上有若干个点,每次询问与\((0,0)\)构成斜率最大的那一个. 但是现在…
 A - 无耻的出题人 Time Limit: 2000/1000 MS (Java/Others)      Memory Limit: 65536/32768 KB (Java/Others)  Submit Status Problem Description 听到X神要參加比赛,仅仅会Fibnacci数的出题人被吓得哭晕在厕所.为了防止X神AK(ALL KILL)比赛题目,无耻的出题人仅仅好在题面上做些手脚(加密).当中一道题的题目描写叙述例如以下: hjxh dwh v vxxpd…
保护出题人(defend) 题目描述 输入 第一行两个空格隔开的正整数n和d,分别表示关数和相邻僵尸间的距离. 接下来n行每行两个空格隔开的正整数,第i + 1行为 a i和 x i,分别表示相比上一关 在僵尸队列排头增加血量为 a i点的僵尸,排头僵尸从距离房子 x i米处开始接近. 输出 一个数,n关植物攻击力的最小总和 ,保留到整数. 样例输入 5 2 3 3 1 1 10 8 4 8 2 3 样例输出 7 提示 来源 sdoi2013R2day2 solution 把ai前缀和起来 得到…
链接:https://ac.nowcoder.com/acm/contest/358/B 题意: 出题人早上起床就打算穿衣服,他有两箱衣服,因为懒,他在这两天只打算打开一个箱子. 两个箱子中一个有n件衣服,其中有x件女装,另一个有m件衣服,其中有y件女装. 出题人在第一天随机挑一个箱子后,接下来的两天就会从此箱子中随机找一件衣服穿. 又因为出题人懒而且很有钱,所以他穿完衣服后不会去洗,而是直接扔进垃圾桶,也不会放回原来的箱子. 已知出题人第1天穿了女装,求他第二天依然穿女装的概率 t为0 小数,…
链接:https://ac.nowcoder.com/acm/contest/358/A 题意: 众所周知,每个人都有自己的rp值(是个非负实数),膜别人可以从别人身上吸取rp值. 然而当你膜别人时,别人也会来膜你,互膜一段时间后,你们就平分了两人原有的rp值,当你膜过一个人之后,你就不能再膜那个人了 出题人发现自己的rp值为x,出题人周围有n个人,第i个人的rp值为a[i] 你要选择膜哪些人和膜人的顺序,使出题人的最终rp值最大 第一行两个数n,x,人数和出题人的初始rp值第二行n个数,第i个…
题目 出题人铭铭认为给SDOI2012出题太可怕了,因为总要被骂,于是他又给SDOI2013出题了. 参加SDOI2012的小朋友们释放出大量的僵尸,企图攻击铭铭的家.而你作为SDOI2013的参赛者,你需要保护出题人铭铭. 僵尸从唯一一条笔直道路接近,你们需要在铭铭的房门前放置植物攻击僵尸,避免僵尸碰到房子. 第一关,一只血量为\(a_1\)点的墦尸从距离房子\(x_1\)米处速接近,你们放置了攻击力为\(y_1\)点/秒的植物进行防御:第二关,在上一关基础上,僵尸队列排头增加一只血量为\(a…
Description S也想寻求真正的智慧,然而由于“抑制力”的存在,她必须先解决一系列询问.有一个长度为n的序列a,一个长度为m序列b被称为螺旋序列当且仅当b1=bm且对于1<=i<=m有bi<=b1.S需要回答q个询问,每个询问用l,r两个参数描述,表示询问区间[l,r]的最长连续子螺旋序列的长度. Input 第一行两个整数n,q,表示序列长度和询问数.第二行n个整数ai表示序列a.以下q行,每行两个整数l,r表示一次询问. Output 对每次询问输出一行一个整数表示最大连续螺…
出题人这样不好吧 Time Limit: 2000/1000ms (Java/Others) Problem Description: 作为编协的第一次月赛,肯定是要有防AK(ALL KILL)的题目的,只会Fibnacci数的出题人绞尽脑汁,没能想出一道难题,没办法只好在题面上做一些手脚(加密). 其中有一道题题面是这样的:hjxhs ia dvwpude z,he sn f snrzad deppahe, tbcm wytj ir sm zvdpzdxiq uus tjc ta n dijp…
https://ac.nowcoder.com/acm/contest/358/E 题意: 出题人有两个数组,A,B,请你把两个数组归并起来使得cost=∑i∗ci 最小,归并要求原数组的数的顺序在新数组中不改变. 题解: 先分别处理A和B数组,把A先分成n段,把某段均值大于前面的一段,就把这两段合并.处理完A,B段后就可以取大原则归并. #include <algorithm> #include <iterator> #include <iostream> #incl…
出题人有两个数组A,B,请你把两个数组归并起来使得$cost=\sum i c_i$最小. 归并要求原数组的数的顺序在新数组中不改变. 贪心水题 对于一段序列$A_i,A_{i+1},...,A_r$, 我们考虑向$A_k,A_{k+1}$间中间插入一个$x$. 贡献为$iA_i+(i+1)A_{i+1}+...+kA_k+(k+1)x+(k+2)A_{k+1}+...+(r+1)A_r$. 由$x$插入到$A_i$左端更优可以得到$\frac{A_i+...+A_k}{k-i+1}<x$. 由…
[BZOJ3203] [SDOI2013]保护出题人(二分+凸包) 题面 题面较长,略 分析 对于第i关,我们算出能够打死前k个个僵尸的最小能力值,再取最大值就可以得到\(y_i\). 前j-1个僵尸到门的距离为\(x_i+(i-j+1) \times d\),血量为\(sum[i]-sum[j]\),因此 \[y_i=max(\frac{sum_i-sum_j}{x_i+(i-j+1) \times d})= max(\frac{sum_i-sum_j}{x_i+i \times d-(j+1…
题面 ​出题人铭铭认为给SDOI2012 出题太可怕了,因为总要被骂,于是他又给SDOI2013 出题了. 参加SDOI2012 的小朋友们释放出大量的僵尸,企图攻击铭铭的家.而你作为SDOI2013的参赛者,你需要保护出题人铭铭. 僵尸从唯一一条笔直道路接近,你们需要在铭铭的房门前放置植物攻击僵尸,避免僵尸碰到房子.第一关,一只血量为a1 点的僵尸从距离房子x1 米处匀速接近,你们放置了攻击力为y1 点/秒的植物进行防御:第二关,在上一关基础上,僵尸队列排头增加一只血量为a2点的僵尸,与后一只…
521. 最长特殊序列 Ⅰ 给定两个字符串,你需要从这两个字符串中找出最长的特殊序列.最长特殊序列定义如下:该序列为某字符串独有的最长子序列(即不能是其他字符串的子序列). 子序列可以通过删去字符串中的某些字符实现,但不能改变剩余字符的相对顺序.空序列为所有字符串的子序列,任何字符串为其自身的子序列. 输入为两个字符串,输出最长特殊序列的长度.如果不存在,则返回 -1. 示例 : 输入: "aba", "cdc" 输出: 3 解析: 最长特殊序列可为 "a…
2021.08.16 P1363 幻象迷宫(dfs,我感受到了出题人浓浓的恶意) P1363 幻象迷宫 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题意: 幻象迷宫可以认为是无限大的,不过它由若干个N*M的矩阵重复组成.矩阵中有的地方是道路,用'.'表示:有的地方是墙,用'#'表示.LHX和WD所在的位置用'S'表示.也就是对于迷宫中的一个点(x,y),如果(x mod n,y mod m)是'.'或者'S',那么这个地方是道路:如果(x mod n,y mod m)是'#…
点此看题面 大致题意: 给你若干份排序的代码,共\(6\)个子任务,每个子任务让你构造数据使得一份代码用时在给定的\(T\)以内,另一份代码用时超过\(2000000\). 子任务\(1\):归并排序\(AC\),计数排序\(TLE\) 很简单,要想让计数排序\(TLE\),自然是要让值域尽量大. 由于\(T=7\),因此\(n\)恰好为\(1\),则我们随便选取一个较大的数作为被排序的数即可. 子任务\(2\):冒泡排序\(AC\),选择排序\(TLE\) 这个子任务,我们可以选取一大堆相同的…
惊了,我怎么这么菜啊.. 题目链接: (bzoj)https://www.lydsy.com/JudgeOnline/problem.php?id=3203 (luogu)https://www.luogu.org/problemnew/show/P3299 题解: 先讲正常做法. 设\(S_i\)为\(i\)的前缀和,则显然第\(i\)次答案为\(\max^i_{j=1} \frac{S_i-S_{j-1}}{x_i+id-jd}\) 那么很显然就是要求从一个点\((x_i+id,S_i)\)…
由于样例解释很清晰,所以很容易得到以下结论: 1.每一关都是独立的,且僵尸的相对位置不会变 2.每一关的攻击力=Max(sum(i)/dis(i)) 其实sum(i)是僵尸攻击力的前缀和,dis(i)是距离 然后因为输入是每次在队头添加,所以我们可以把前缀和转换成后缀和 攻击力=Max( (sum_i-sum_j)/(x_i+i*d-j*d) ) 这显然是一个斜率的式子,又因为僵尸的相对位置不变 所以我们可以维护一个下凸壳,之后每次在凸壳上三分最优解即可 #include<cstdio> #i…
题目翻译完了是每一位之和是多少. #pragma comment(lnker, "/STACK:1024000000,1024000000") #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #include<vector> #include<map> #include<set> #include<que…
人生第一道三分?... 把进攻序列里的前i只僵尸看成一个点,横坐标是第i只僵尸到达的时间,纵坐标是这i只僵尸的血量总和..就是说植物必须在这段时间内输出这些伤害..那么单位时间的输出伤害就是斜率了. 问题就变成了对于若干个点,求从原点到各个点斜率的最大值. 因为D是固定的,而每次新加入僵尸实际就是把原来的点平移..并且相对位置关系不变...所以显然斜率最大的点一定在凸包上= = 每次就新加入一个点并维护凸包,然后三分找出凸包上的点与原点连线斜率的最大值(原点与凸包上各个点连线的斜率是单峰的)就好…
听说你也喜欢吃培根?那我们一起来欣赏一段培根的介绍吧: bacoN is one of aMerICa'S sWEethEartS. it's A dARlinG, SuCCulEnt fOoD tHAt PaIRs FlawLE 什么,不知道要干什么?上面这段巨丑无比的文字,为什么会有大小写呢?你能发现其中的玄机吗? 提交格式:PCTF{你发现的玄机} 刚看到这道题时,觉得应该是数大写字母中间有多少个小写字母,进而对应ascii码表,然而我还是太年轻啊,完全不知道有培根密码这么个东西 试一试,…
题解 我们把伤害-时间图像画出来.然后维护一下僵尸血量的前缀和.最好情况肯定是有一个僵尸恰好死在戴夫家门口.我们把原点到其他n个点的斜率最大的一个累积到答案. 发现每添加一个点,其他所有点的坐标都变了,但是相对位置没有变,所以我们随便维护一个原点位置就行了. 在n个点中寻找的时候,我们维护一个上凸壳,然后随便二分就行了.二分条件是,他左边的斜率小于他的斜率. #include<bits/stdc++.h> using namespace std; typedef long long ll; s…
给a做一个前缀和,那么现在每次所查询的就是(sn-sk)/(bn+nd-(k+1)d)的最大值.这个式子可以看成是(bn+nd,sn)和((k+1)d,sk)所成直线的斜率. 脑补一条直线不断减小斜率,容易发现可能成为最大值的点一定在下凸壳上.并且凸壳上的点和该点间的斜率变化情况是一个凸函数.于是维护出凸壳,在凸壳上三分即可. #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib&…