Checkers 思维 + 倍增LCA 隐式建图 考虑排序好的大小 \(a\), \(b\), \(c\) 如果 \(b - a = c - b\):只有两种情况转移,中间的往左边或者右边跳 如果 \(b - a \ne c - b\):除了上述的情况,还有两边通过中间跳 第二种情况显然可以被认为是其上一个状态,通过中间那个跳珠往两边跳造
题目 The highest building in our city has only one elevator. A request list is made up with N positive numbers. The numbers denote at which floors the elevator will stop, in specified order. It costs 6 seconds to move the elevator up one floor, and 4 second
#include <cstdio> #include <algorithm> using namespace std; int n, m, ans; int a[105][105], sum[105][105]; int main() { int size; scanf("%d%d", &n, &m); size = min(n, m); for (int i = 1; i <= n; i++)
Given a string s and a dictionary of strings wordDict, add spaces in s to construct a sentence where each word is a valid dictionary word. Return all such possible sentences in any order. Note that the same word in the dictionary may be reused multiple ti
主要内容: 1.最小瓶颈路2.kruskal 重构树3.差分约束系统4.强连通分量5.DFS树6.kosaraju算法求SCC7.tarjan算法求SCC8.SAT问题 最小瓶颈路 模板: #include<bits/stdc++.h> #define re return #define lowbit(x) (x&(-x)) #define dec(i,l,r) for(int i=l;i>=r;--i) #define inc(i,l,
放个deaf语录 deaf:建议大家平时练习找题不要找太简单的,比如CF就找3000+,洛谷的话就选黑紫题就好了 注: 在座的有新初三的不到省一水平的同学。 [TJOI2019]甲苯先生的线段树 这题题面简直就是刻在DNA里的点分治(路径为某个数的路径条数)。 我们考虑借鉴点分治的思想,枚举 lca,然后在考
链接:https://ac.nowcoder.com/acm/contest/26656/1040来源:牛客网 题目描述 这是一个加强版的斐波那契数列。 给定递推式 求F(n)的值,由于这个值可能太大,请对109+7取模。 输入描述: 第一行是一个整数T(1 ≤ T ≤ 1000),表示样例的个数。以后每个样例
P1463 [POI2001][HAOI2007] 反素数 数据很大,N越大,答案就有可能更新,无明显规律,打表. 能想到的暴力打法打了一晚上还没打完 必须用小表打大表。有一个结论:将数分解质因数,如果较小的素数的指数比较大的素数的指数小,那么交换两个指数可以使原来的因数个数不变而答案更小。 所以我
链接:https://ac.nowcoder.com/acm/contest/26656/1039来源:牛客网 题目描述 已知 f(1)=1,f(2)=1f(1)=1,f(2)=1f(1)=1,f(2)=1。 对于 n>2n>2n>2 的任意 f(n)f(n)f(n), 都满足 f(n)=3f(n−1)+2f(n−2)+2f(n)=3f(n-1)+2f(n-2)+2f(n)=3f(n−1)+2f(n−2)+
链接:https://ac.nowcoder.com/acm/contest/26656/1038来源:牛客网 题目描述 JYM和XJ转眼就从小学上了高中。在学习递推的时候,JYM在纸上随手写了一个递推关系式:an=2*an-1,a0=0。写完这个递推式,JYM拿给XJ看,XJ觉得太过简单,于是大笔一挥,在等式右边又加了一个式
目录【LGR-113】洛谷 7 月普及组月赛 & JROI R6ABCD 【LGR-113】洛谷 7 月普及组月赛 & JROI R6 因为太菜了所以只能做做普及组的题目这档事。 但正常的普及组比赛肯定也不会出现这么多序列的题吧。我还不会做(悲)。 传送门 A 本题仅需要知道二个性质:相邻两个数的最大公约数为 \(1\)
0.题目 1.输入 输入 n,q; 输入图书,存入vector string a[20]数组,a[i][j],其中i表示图书编号的位数 2.查询操作 2.1 每输入一个读者需求 存入 int t; string s1; 2.2 遍历一遍a数组 2.2.1 遍历a[i][j],i属于[t,9],j属于[0,a[i].size()]; 在遍历中比
Given an integer array nums, return an array answer such that answer[i] is equal to the product of all the elements of nums except nums[i]. The product of any prefix or suffix of nums is guaranteed to fit in a 32-bit integer. You must write an algorithm t
P3916 图的遍历 题意:求各个点所能到达最大的编号 按正常情况去遍历图,会超时和爆内存,得到20分(起码我只拿了20) 换个思路来求,编号大的地点可以到达哪些点 思路: 反向建边 从编号大的点开始dfs,dfs传递初始编号d,这是遍历到的点的答案 若当前点被访问过了说明被更大的点访问过了,遂ret
LeetCode 建图 + 并查集 + (筛法求质数) 如果暴力的建图,跑dfs最大连通图,建图会成为瓶颈,O(n^2)。 但是考虑到,A、B两数,A、B分别与其非1非自身的因数相连,如果A、B之间联通,那么A、B相互联通的那个点为公因数。可以将时间复杂度从依赖数据量的大小转移到依赖数据按数据范围。 即建图时,遍
56. 合并区间 ->用sort()函数排序:按a[0],a[1]大小排序 判断区间重叠:eg- a=[1,4] b=[2,3] a[1]>b[0] 左边位置为a[0],右边位置为max(a[1],b[1]) 所以区间是[1,4] -<代码: class Solution: def merge(
2015-2016 ACM-ICPC, NEERC, Northern Subregional Contest A - Alex Origami Squares 长为h, 宽为w 如果w * 3 > h,则正方体边长为w 如果w * 3 < h,则正方体边长为max(h / 3, w / 2) #include <algorithm> #include <cstring> #include <iostream> #include <map>
分析 首先 用数学归纳法证明斐波那契数列前n项平方和 等于 f[n] * f[n+1];假设 第 n 项时满足 前n项平方和 等于 f[n] * f[n+1];那么 第 n+1 项时 应该是f[n] * f[n+1] + f[n+1] * f[n+1]= f[n+1] * (f[n] + f [n+1] )= f[n+1] * f[n+2] = 假设的情况且 第 1 项 平方和 满足证毕
链接:https://ac.nowcoder.com/acm/contest/26656/1030来源:牛客网 题目描述 给出一个数n,求1到n中,有多少个数不是2 5 11 13的倍数。 输入描述: 本题有多组输入每行一个数n,1<=n<=10^18. 输出描述: 每行输出输出不是2 5 11 13的倍数的数共有多少。 示例1
H. Permutation Counting 2022/7/28 传送门:https://codeforces.com/group/5zHJ4CTyoU/contest/392060/problem/H 图上计数,判环,拓扑。 题意:求n个数排列的方案数,满足m个限制条件:\(P_{x_i}<P_{y_i}\),题目保证没有相同的y 解: 建成有向图图,是一个树林。 对于有环的图,答案为0。 对每颗
# 单词默写小程序。import easygui as equestions = ["局部", "野怪", "重复", "添加", "动画"]answers = ["local", "monster", "repeat", "append", "animation"]# 计算列表questions的长度。le
A. 烷基计数 \(f[i]\)表示由\(i\)个碳原子构成的烷基数量 \(g[i][j]\)表示由\(i\)个碳原子构成的只有两棵子树,其中较小的一棵大小为\(j\)的烷基数量 求\(f[i]\),先考虑只有两棵子树的情况,如果两个子树大小不一样那么有\(f[j] * f[i - 1 - j]\)种方案,如果两棵子树大小相同,那就不能直
这题要推一下式子,注意涉及到取模的式子都要尽量展成减去下取整的形式。 注意,这里求和符号是求到n,因此分块里面 l 的范围就是l<=n,然后对于n大于k的情况需要特判一下。 1 #include "bits/stdc++.h" 2 using namespace std; 3 typedef long long LL; 4 LL n,k; 5 int m
MEX MEX——某不知名战略游戏中墨西哥的国家 tag (不是 \(\text{MEX}\) 指的是不属于集合 \(S\) 中的最小非负整数,即 \[\text{mex}(S)=\min{x} \quad (x\notin S,x\in N) \]至于它有什么性质,我也不知道。但是这里整理了一些 OI 上的与 \(\text{MEX}\) 有关的题目,难度在普及提高之
可能更好的阅读体验 题目传送门 题目大意 给定一个长度为 \(n\) 的序列 \(a_1,a_2,\dots,a_n\),每次操作你可以选择相邻的两个不同的数字删去,然后剩下的部分连成一个序列。 现在求让这个序列所以值相等的前提下,序列的最长长度。 多组数据,数据组数 \(T\le 1000\) \(1\le n\le 5000\)