首页 > TAG信息列表 > 长为

木材加工

先找到原先木头中最长出头的数值 ma, 然后令右值 right = ma, left = 0; 这样 md 就等于 (lf + ri) / 2; 然后遍历所有木头, 找到比 md 长的木头 a[i] , a[i] / md 就是长为 a[i] 的木块可以截取长为 md 木块的个数, 统计所有长度大于 md 的木头可以截取长为 md 木头的个数 sum,

杂题

给定一个长为 \(n\) 的字符串 \(S\) 的 \(n-m+1\) 个长位 \(m\) 的连续子串,构造 \(S\) 。 一开始想的是两两字符串建边然后跑最长路,然后发现这样子只能跑哈密顿回路,复杂度很大。 可以对长为 \(m\) 的字符串前 \(m-1\) 个与 后 \(m-1\) 个子串建边,避免了重复点多的问题,同时也可以跑

cf940 E. Cashback

题意: 给定数组 a[] 和一个常数 c,可以把数组切成任意数量的段,并删除每段中前 \(\lfloor (r-l+1)/c \rfloor\) 小的数,其中分子为段长。问数组元素和的最小值。 \(n\le 1e5\) 思路: 若某段长小于 c,则可删去一个数;若段长 \([c,2c)\),则可删去两个数。 那么容易写出一种朴素dp:枚举 \(i\)

【题解】CF1620B Triangles on a Rectangle

题意精髓:在给定矩形中画三角形,使得面积最大,并满足: 三个顶点都在矩形的边上至少有一条边在矩形的边上 先放一个输入,方便后面变量的描述: scanf("%lld%lld",&w,&h); for(int i=1;i<=4;i++) { scanf("%lld",&k[i]); for(int j=1;j<=k[i];j++) scanf("%lld",&a[i][j]); } 三

cf958 C2. Encryption (medium)(dp)

题意: 把长为n的数组切成k段,每段的得分为段中的数之和模p。问总分最大是多少(总分不用模p) n <= 2e4,k <= 50,p <= 100 思路: 先考虑朴素dp。\(f(i,k)\) 表示把第 \(1\sim i\) 个数切成 \(k\) 段的最大答案,则 \(f(i,k) = max _{j<i} \{ f(j,k-1) + s[i]-s[j] \}\),其中 \(s[]\) 为前缀和

点子

\(1. 对于一个长为n字符串,有长为i的border,有长为j的border,则有长为n-|i-j|的border\) \(2. 对于f(n)=n的约数个数,有f(n)=\Omega(1),f(n)=O(n^{\frac{1.537 \times \ln2}{\ln\ln n}})=O(n^{\frac{1.066}{\ln\ln n}}),在平均假设下f(n)=\Theta(\ln n)\) \(3. 对于f(n)=n的质因数个

C语言 铺草坪提高版

有一块长为n宽为2的方形草坪,现用长为2宽为1的方形草皮将其铺满,请计算共有多少种不同的铺法? 输入格式: 输入只有一个正整数n(1=<n<=90),代表草皮的长度。 输出格式: 输出不同铺法的个数。 输入样例: 3 输出样例: 3 分析: 长为n    1   2  3  4  5    6     7 个数   

[机房测试]冒泡排序期望

Description 一个长为 \(n\) 的排列的花费是使其排好序所要冒泡的次数。 for(int i=1;i<n;i++) if(a[i]>a[i+1]) swap(a[i],a[i+1]); 求随机一个长为 \(n\) 的排列,花费的期望。 Solution 一个显然的做法是枚举花费,然后统计每种花费的排列个数。根据冒泡排序的性质,每

cf1348 B. Phoenix and Beauty(思维)

https://codeforces.com/contest/1348/problem/B 题意: 给一个长为 n 的数组,向其中随意插入元素,使任何长为 k 的连续子列的和相等 \(k,n\le 100\) ,新数组的长度不能超过 1e4 思路: 要使 \(a_1+a_2+a_3+a_4=a_2+a_3+a_4+a_5\) ,只需 \(a_1=a_5\) 所以新数组需满足 \(a_i=a_{i+k},\fora

hdu 6975/ 2021“MINIEYE杯”中国大学生算法设计超级联赛(3)1003 Forgiving Matching(FFT)

https://acm.hdu.edu.cn/showproblem.php?pid=6975   题意: 给出2个串S和T,含有通配符。 若S的一个子串满足和T不匹配的位置<=k个,则认为S的这个子串与T是匹配的 对于k∈[0,|T|],回答S中有多少个子串与T匹配   解决这道问题首先要明白如何用FFT求解字符串匹配问题 可以看 https://w

[CF1366E] Two Arrays - 思维

Description 给定一个长为 \(n\) 的序列 \(a_i\) 和一个长为 \(m \le n\) 的严格上升序列 \(b_i\),要求将 \(a_i\) 划分为 \(m\) 段,第 \(i\) 段的最小值恰好为 \(b_i\),求划分方案数。 Solution 关键在于如何利用 \(b_i\) 严格上升这个条件。 考虑求出 \(a_i\) 序列的后缀最小值 \(f

你相信引力吗

2020.11.2 题目描述 给定一个长为 \(n\ (3\leq n\leq 5\times 10^6)\) 的环,每个点上有一个权值 \(a_i\)。对于一对点 \((i,j)\),会将环分成一段优弧和劣弧。只要这两个弧的其中之一上的所有点的权值都严格不大于 \(\min\{a_i,a_j\}\),那么我们就说 \((i,j)\) 这对点是危险的。求一共

题解 SP2829 【TLE - Time Limit Exceeded】

题目链接 Solution TLE - Time Limit Exceeded 题目大意:给定 \(n,m\),和长为 \(n\) 的序列 \(c\),让你构造一个长为 \(n\) 的序列 \(a\),满足 \(a[i]\in [0,2^m)\) 且 \(c[i] \nmid a[i]\),\(\forall i \in [0,n),a[i] \;and\;a[i+1]=0\) 高维前缀和 分析:很容易列出一个 \(dp\) 式

[CSP校内集训]B(曼哈顿距离)

题意 长为n的线段上有m个点对\((l,r)\),两点间的距离为\((r-l)\);现在可以修一个连接\(x\)和\(y\)的长度为0的通道,要求所有点对中最远距离的最小 思路 显然答案满足单调性,二分一个\(mid\),现在如果点对的距离已经\(\leq mid\)就不考虑了;否则它们必须经过这条通道(x,y),相当于对于所有

# 滚动哈希

滚动哈希 假设字符串\(C=c_1*c_2*...c_m\),定义哈希函数\(H(C)=(C_1*b^{m-1}+C_2*b^{m-2}+...C_m*b^{0})mod\; h\) 从k开始长为|m|的子串的hash值转移到从k+1开始长为|m|的字串的hash值的转移公式为 :\[H(S[k+1..k+m]=(H(S[k..k+m-1])*b-s_k*b^m+s_{k+m}\] 基数使用1e7以上的素数减

分块(优雅的暴力) 学习博客。。。持续更新

学习参照以下两个博客:分块——优雅的暴力  分块入门1~9 分块入门1: 给出一个长为 n 的数列,以及 n 个操作,操作涉及区间加法,单点查值。 //给定一个长为n的序列,以及n个操作,操作涉及区间加法,单点查值 #include<bits/stdc++.h> using namespace std; const int maxn = 50086;

有关几何体中的最值

前言 典例剖析 例1【2019届高三理科数学第三轮模拟训练题】已知某圆台如图所示,它的上、下底面的直径分别为\(2\)和\(4\),母线长为\(2\),\(A\)为一母线的中点,\(B\)为过点\(A\)的轴截面截得的另一条母线与底面的交点,则在圆台侧面上从点\(A\)到点\(B\)的最短距离为【】 $A.4$ $B.5$ $C

【刷题】若串 =’software’ ,其子串数目为:37

<关键词>子串 子串是母串中的一部分,可以是母串本身,也可以是空字符串 设串中字符数为n,则其子串数目为:s=(1+n)*n/2+1 具体地: 长为0的子串:1 长为1的子串:8 长为2的子串:7 长为3的子串:6 长为4的子串:5 长为5的子串:4 长为6的子串:3 长为7的子串:2 长为8的子串:1 总和为37 或者用插板法理解