石子游戏(简单) 原题链接 思路: 通过形式容易看出是一道DP.其中异或和的情况只有64种,所以我们可以开一维来记录当前异或和的状态. 利用dp[当前位置][异或和][是否选择当前]来进行状态转移.时间复杂度为O(qnm). 比赛时这道题卡了好久,思路很清晰,但就是跑不出正确结果.后来发现原来忽略了f为-1的情况,初始化默认为0了.. 题解: #include<bits/stdc++.h> #define MAX 1005 #define MOD 4294967296 using namesp…
腾讯手机地图 腾讯手机地图的定位功能用到了用户手机的多种信号,这当中有的信号的作用范围近.有的信号作用的范围则远一些.有的信号相对于用户在不同的方位强度是不同的,有的则是在不论什么一个方向上信号强度都一致的. 已知用户面向北方拿着自己的手机.在不同方位的各种信号覆盖区域能够被抽象成以用户为圆心的一系列扇形.已知每一个扇形的半径 r,和每一个扇形的两条边相对于正东方向的夹角度数.每一个信号覆盖区域抽象出的扇形都能够通过从第一条边逆时针旋转到第二条边画出. <img src="http://r…
点边都带权的最大密度子图,且会有必须选的点. 求\(\frac{\sum w_e}{k*(2n-k)}\)的最大值,其中k为子图点数 设\[h(g) = \sum w_e - g*(2nk-k^2)\] 假设最优解为\(g*\),则当\(g<g*\)时,\(h(g)>0\);\(g>g*时,h(g)<0\),以此判断条件二分搜索. 但是\((2nk-k^2)\)不能直接转化为点权,需要做点改变. \[\sum w_e - g*2nk+g*k^2 = \sum w_e + \frac…
每个 UCloud 用户会构造一个由数字序列组成的秘钥,用于对服务器进行各种操作.作为一家安全可信的云计算平台,秘钥的安全性至关重要.因此,UCloud 每年会对用户的秘钥进行安全性评估,具体的评估方法如下: 首先,定义两个由数字序列组成的秘钥 aa 和 bb近似匹配(\approx≍) 的关系.aa 和 bb 近似匹配当且仅当同时满足以下两个条件: |a|=|b|∣a∣=∣b∣,即 aa 串和 bb 串长度相等. 对于每种数字 cc,cc 在 aa 中出现的次数等于cc 在 bb 中出现的次数…
贝壳找房换了一个全新的办公室,每位员工的物品都已经通过搬家公司打包成了箱子,搬进了新的办公室了,所有的箱子堆放在一间屋子里(这里所有的箱子都是相同的正方体),我们可以把这堆箱子看成一个 x*y*z 的长方体.贝壳找房的leader觉得所有的箱子放在一间房子里有点太挤了,不方便每个员工搬运自己的物品,于是又让搬家公司把这堆箱子的前面.后面.左边.右边.顶上各取走了一层放到其他屋子里.当搬家公司搬完物品之后,贝壳找房的leader知道剩下了多少个箱子,但是不知道搬家公司又搬运了多少个箱子,那么请问搬…
小数据打表,大数据暴力. 导致超时的主要原因是$m$小的询问次数太多,可以把$m≤10$的答案直接暴力打表存起来,$m>10$的用$C$题的方法即可. #include <iostream> #include <cstdio> #include <cstring> #include <string> #include <algorithm> #include <vector> #include <queue> #in…
暴力. $O(m*n)$的算法可以通过此题,每次询问$O(m)$扫$S$数组,统计不同数字的个数,每次移动最多只会变化两个数字,如果不同数字个数为$0$,那么答案加$1$. #include <iostream> #include <cstdio> #include <cstring> #include <string> #include <algorithm> #include <vector> #include <queue…
暴力. 暴力枚举$S$串的每一个长度为$m$的子串,排序判断即可. #include <iostream> #include <cstdio> #include <cstring> #include <string> #include <algorithm> #include <vector> #include <queue> #include <stack> #include <map> #inc…
贪心. 从大到小排序之后进行模拟,注意$n=1$和$n=0$的情况. #include <iostream> #include <cstdio> #include <cstring> #include <string> #include <algorithm> #include <vector> #include <queue> #include <stack> #include <map> #in…
在每年的淘宝“双十一”时,访问量都会暴涨,服务器的请求会被流量分配程序按照一定策略,分发给不同的进程去处理.有一类请求,有两个进程可以接受分发的请求,其中一个进程所在服务器的配置.网络传输性能等都要优于另一个进程.流量分发程序可以知道队列中每个任务的预计处理时间,每次都会尽可能将队列中预计处理时间更多的任务分配给性能更优的进程. 假设队列当前一共有 n 个任务待分配,第 i 个任务的预计处理时间为a​i​​(1≤i≤n).由于服务存在冷启动问题,越靠后的进程,预计处理时间越短.而队列中的 最后一…
题目链接:https://nanti.jisuanke.com/t/38352 发现规律之后就是算ans=2^(n-1)+4^(n-1).但是注意到n十分大是一个长度为1e5的数字.要想办法降幂. 我们观察费马小定理:a^(p-1)%p=1.发现对于质数取模,a^(p-1)是一个循环节(因为算出来等于1),可以忽略掉不算. #include<bits/stdc++.h> using namespace std; ; ; typedef long long LL; char s[N]; LL p…
贝壳找房在遥远的传奇境外,找到了一个强大的魔法师顾问.他有 22 串数量相同的法力水晶,每个法力水晶可能有不同的颜色.为了方便起见,可以将每串法力水晶视为一个长度不大于 10^5105,字符集不大于 10^5105 的字符串.现在魔法师想要通过一系列魔法使得这两个字符串相同.每种魔法形如 (u,\ v),\ u,\ v \le 10^5(u, v), u, v≤105,可以将一个字符 uu改成一个字符 vv,并且可以使用无限次.出于种种原因,魔法师会强行指定这两个串能否进行修改. 若失败输出 -…
计蒜之道 百度AI小课堂-上升子序列 题目描述 给一个长度为 \(n\) 的数组 \(a\) .试将其划分为两个严格上升子序列,并使其长度差最小. 输入格式 输入包含多组数据. 数据的第一行为一个正整数 \(T\) ,表示数据组数. 每组数据包括两行: 第一行包括一个正整数 \(n\) 第二行包括一个长度为 \(n\) 的数组 \(a\). 输出格式 对于每组数据输出一行一个整数,表示两个子序列的最小长度差.若不存在划分方案则输出\(-1\) 数据范围 \(T <= 10\) 简单: \(n <…
[计蒜之道2019 复赛 A]外教 Michale 变身大熊猫 Online Judge:2019计蒜之道 复赛 A Label:LIS+线段树.树状数组+快速幂(模逆元) 题目描述 题解: pre.关于本题中模逆元的提示: 对于一个质数mod,q的模逆元是\(q^{mod-2}\).也就是说对于本题,平时一般用形如\(G=\frac{p}{q}\)的分式表示概率,现在,我们利用模逆元来表示这个概率,即\(G=p*q^{mod-2}\). 那这道题里\(mod=998244353\)是个质数,那…
24.02% 1000ms 262144K "因材施教"的教育方式自古有之,互联网时代,要实现真正意义上的个性化教育,离不开大数据技术的扶持.VIPKID 英语 2020 多万学员每月在课前预习.课中教学.课后复习.作业.答题测评等环节会产生超过 100100 TB 的数据增量,在对庞大数据进行分析之后,个性化评测系统会自动生成针对每个学生的量化学习报告和个性化学习图谱. 正在拿着自己的个性化学习图谱总结分析的 Dino,看到走来的小明手中拿的麻将牌,心生一题,给小明出了一道难题:&q…
A题 阿里的新游戏 题目概述: 阿里九游开放平台近日上架了一款新的益智类游戏——成三棋.成三棋是我国非常古老的一个双人棋类游戏,其棋盘如下图所示: 成三棋的棋盘上有很多条线段,只能在线段交叉点上放入棋子.我们可以用坐标系来描述棋盘: 如果一条线段上的三个交叉点都被同一玩家的棋子占据的话,则称这条线段被该玩家 成三.现在,小红和小明两人在游戏平台上下棋,其中小红的棋子是黑色的.请你帮小红计算他成三的线段数. 样例对应的棋盘如下: 输入格式 输入第一行两个整数 n,m(3 \le n, m \le…
题链:https://nanti.jisuanke.com/t/15499 这题观察图纸可知成三线段上的相邻点之间的距离有1,2,3三种情况的,同时要成线段必然是同横坐标或者纵坐标,然后我们排除掉穿过0的特殊案例(例如:-1,1,3)就可以啦. #include <queue> #include <cmath> #include <cstdio> #include <cstring> #include <cstdlib> #include <…
北京市商汤科技开发有限公司建立了新的 AI 人工智能产业园,这个产业园区里有 nn 个路口,由 n - 1n−1 条道路连通.第 ii 条道路连接路口 u_iui​ 和 v_ivi​. 每个路口都布有一台信号发射器,信号频段是 11 到 mm 之间的一个整数. 道路所连接的两个路口的发射信号叠加可能会影响道路的正常运行.具体地,如果第 ii 条道路连接的两个路口发射信号的频段分别为 aa 和 bb,那么 \gcd(a, b)gcd(a,b) 不能恰好等于道路的保留频段 w_iwi​.每条道路的保…
链接:https://nanti.jisuanke.com/t/11217 奉上官方题解: 枚举 d(x , y , z) 中的 y,把 y 从这个图中删去,再求这时的全源最短路即可,使用 Floyd 算法来做上述过程. Floyd 算法可以是一个增量的过程,虽然第一维一般都是从 1枚举到 k但是这个枚举的顺序并不影响最后的结果. 所以如果可以预处理出对于每个点 y,只剩 y 没有在 Floyd 的第一维枚举到的矩阵,这个矩阵的值就是不经过 y 点的全源最短路. 所以使用分治,每一次把点集拆成两…
题源:https://nanti.jisuanke.com/t/11215 分析:这题是一个比较经典的网络流模型.把中间节点当做源,两端节点当做汇,对节点进行拆点,做一个流量为 22 的流即可. 吐槽:这是官方题解,然后其实赛场上谢了这个解法,但是我写搓了,因为最后输出路径的时候傻逼了 我居然向最短路一样记录前驱输出路径,简直傻逼了 着重强调(对我自己):网络流的一次增广是需要记录前驱的,但是多次增广以后,可以反向流,前驱就不对了 所以要判断哪些边,在最大流上时,需要枚举边,看哪个满流,然后随便…
题解 思路: 二分答案,设我们要check的值为x. 注意到每一个礼包都有,一个U盘,一个鼠标. 剩余的,分别为一个机械键盘,一个U盘,一个鼠标. 当礼包数目为x时,我们至多可以提供a-x个普通,b-x个幸运,c个豪华.能够使得相邻两个礼包不同的条件 等价于 最小值+次小值<=最大值+1,所以check的时候只需比较 最小值+次小值+min(最小值+次小值+1, 最大值)与x的大小关系即可. #include <iostream> #include <algorithm> #…
阿里“天池”竞赛平台近日推出了一个新的挑战任务:对于给定的一串 DNA 碱基序列 tt,判断它在另一个根据规则生成的 DNA 碱基序列 ss 中出现了多少次. 首先,定义一个序列 ww: \displaystyle w_{i} = \begin{cases}b, & i = 0\\(w_{i-1} + a) \mod n, & i > 0\end{cases}w​i​​={​b,​(w​i−1​​+a)modn,​​​i=0​i>0​​ 接下来,定义长度为 nn 的 DNA 碱…
题意 题目链接 Sol 首先一个结论:floyd算法的正确性与最外层\(k\)的顺序无关(只要保证是排列即可) 我大概想到一种证明方式就是把最短路树上的链拿出来,不论怎样枚举都会合并其中的两段,所以正确性是对的 这道题的话显然一个\(n^4\)的暴力是枚举哪个点不选,再跑floyd. 这个暴力等价于求出每个点除它之外的Floyd矩阵 那么考虑暴力分治,每次找一个中间点\(mid\),暴力向左右递归即可 时间复杂度:\(O(n^3 logn)\) #include<bits/stdc++.h>…
B. 腾讯益智小游戏—矩形面积交(简单) 1000ms 262144K   腾讯游戏开发了一款全新的编程类益智小游戏,最新推出的一个小游戏题目是关于矩形面积交的.聪明的你能解出来吗?看下面的题目接招吧. 给定二维平面上 nn 个与坐标轴平行的矩形,每个矩形是形如 \lbrace (x,y) | x,y \in R, x_1 \le x \le x_2, y_1 \le y \le y_2 \rbrace{(x,y)∣x,y∈R,x1​≤x≤x2​,y1​≤y≤y2​} 的点集,你的任务是对于每个…
阿里巴巴协助征战SARS(困难) 33.29% 1000ms 262144K   目前,SARS 病毒的研究在世界范围内进行,经科学家研究发现,该病毒及其变种的 DNA 的一条单链中,胞嘧啶.腺嘧啶均是成对出现的.这虽然是一个重大发现,但还不是该病毒的最主要特征,因为这个特征实在太弱了. 为了进一步搞清楚该病毒的特征,CN 疾病控制中心和阿里巴巴集团合作,用科技的力量和程序的思维来解决这个难题.现阿里巴巴特委派你成为 CN 疾病控制中心的 SARS 高级研究员,去研究在这个特征下,可能成为 SA…
题链:"https://nanti.jisuanke.com/t/15500" 本来希望通过找循环节然后套KMP来通过后面题的,可是只过了B题,可能循环节不一定是存在的. #include <queue> #include <cmath> #include <cstdio> #include <cstring> #include <cstdlib> #include <iostream> #include <…
大意: 给定树, 点$i$的点权为$a_i$, 求$\sum\limits_{a_i \perp a_j}dis(i,j)$ 中等难度可以枚举每条边的贡献, 维护子树内每个数出现次数$a$, 转化为求$\sum\limits_{i=1}^{500}\sum\limits_{j=1}^{500}([gcd(i,j)=1]a_i(tot_i-a_i))$, 反演一下可以$O(500log500)$计算. #include <iostream> #include <sstream> #i…
百度一共制造了 nn 辆无人车,其中第 ii 辆车的重量为 a_i\ \mathrm{kg}ai​ kg. 由于车辆过重会增大轮胎的磨损程度,现在要给这 nn 辆车减轻重量.每将一辆车减轻 1\ \mathrm{kg}1 kg 需要消耗 pp 万百度币,总预算为 ss 万百度币. 现在希望你设计一种最优的减重方案,使得最重的车辆的重量是所有减重方案中最小的.任何时候,每辆车的重量必须大于等于 1\ \mathrm{kg}1 kg.并且减重方案只能减轻整数 \mathrm{kg}kg. 输入格式…
https://nanti.jisuanke.com/t/39260 根据题意我们可以知道  这是一个树 我们只需要找到出度最大的两个点就好了 如果包含根节点的话要-- 两个点相邻的话也要-- 数据很水 不需要想太复杂 #include<bits/stdc++.h> using namespace std; typedef struct { int n; int add; }node; node a[]; ][]; bool cmp (node a,node b) { return a.n&g…
为了给全球小学员打起信息安全"保护伞",VIPKID 还建立了一套立体化的安全防御体系,7 \times 247×24 小时持续安全监控与应急响应等多项联动,具备业界最高级别的数据安全保护标准.值得一提的是,VIPKID 也是行业业内唯一通过 ISO 国际信息安全体系认证.公安部信息安全等级保护三级认证的教育企业. 现在安全防御体系就检测到了一个小问题,需要你来帮忙解决其中有关"前驱与后继"的这一部分,让我们一起来守护小学员们的信息安全吧!请看题: 对于两个长度相等…