题意 $n \leqslant 10^5$ Sol 随便推一推就好了吧。。 $f[i] = \frac{f[i] + f[i +1] + \dots f[n]}{n - i + 1} + 1$ 移一下项,然后化一化,就做完了。。 然而这题卡空间MMP #include<cstdio> #include<algorithm> #include<iostream> //#define int long long #define Pair pai
原题链接 题意:在 \(1 \leqslant n \leqslant 1e9, 1\leqslant m \leqslant 1e9, 1 < k \leqslant 1e9\) 的情况下,构造出 \(1\leqslant x \leqslant n, 1 \leqslant y\leqslant m\) 同时三个点构成的三角形面积等于 \(\frac{n\times m}{k}\)。 题解:主要是当在抽象成 \(x\times y
AND 0, Sum Big 来源:https://codeforces.com/problemset/problem/1514/B 标签:【位运算】【数论】 难度:★★☆☆☆ 题目简述 给定两个数n和k,计算出满足长度为n且满足下列条件的数列的数量: 1.所有的元素都属于[0,2k-1]; 2.所有元素的按位与运算结果为0; 3.元素和尽
(容斥原理)1到6内 被2、3整除的数 6/2+6/3-6/(2*3) #include <iostream> using namespace std; const int N=20; typedef long long LL;//1e9*1e9 爆int int p[N]; int main() { int n,m; cin>>n>>m; for(int i=0;i<m;i++)cin>>p[i]; int res=0
做法:记录每个点i向左与它最近的不互质的数j,从j+1到i是可以分成1块的。 对于每次询问,从r开始一直贪心往前跳,每跳一步ans++;但这样一步一步跳会T,需要去倍增优化。 #include<bits/stdc++.h> using namespace std; #define ll long long #define fastio ios::sync_with_stdio(false),ci
https://codeforces.com/gym/101158 D题:双哈希:哈希函数一致,模数一个 1e9+7,一个998244353即可。 I题:作三角形或四边形,满足以下条件: ① 在 x = 0, x = 1e9, y = 0, y = 1e9 这四条直线上都存在着端点 ② 端点都是整点 ③ 面积不超过 25000 在分析的过程中,会遇到这样一个问题:求 \(x,
类似leetcode的丑数II 链接:https://leetcode-cn.com/problems/ugly-number-ii/ 说回这个题 而这个是只有2 3 5 7四种因子,不包含本身,即序列为4 6 8 9 10 ... 输入正整数n 输出序列中第n个数 (可能很大,对1e9+7取模) 用dp三指针实现,cpp代码如下 1 #include <bits/stdc++.h>
LINK 给定n个长度为m的一维数组, 问你是否可以找到一个长度为m的ans一维数组 这n个一维数组A[1,2,3…,n],每个都可以在修改<=2个元素后,变成ans 如果可以,输出这个数组ans; 否则输出No n * m = 1e6, 这n*m个元素 = 【1, 1e9】 1 2 3 4 5 当我们的ans选择 = [1, 2, 1, 2, 5
https://www.acwing.com/problem/content/902/ 整数划分问题,给定一个正整数n,问有多少种方案使得n=x1+x2+...+xn,不考虑顺序。 解法1:利用完全背包的模型,将1~n每一个数字看成一个物品。 1 #include<iostream> 2 using namespace std; 3 const int N=1010,mod=1e9+7; 4 in
[题目描述] 给定一个浮点数n,求它的三次方根。 [输入格式] 共一行,包含一个浮点数n。 [输出格式] 共一行,包含一个浮点数,表示问题的解。 注意,结果保留6位小数。 [数据范围] −10000≤n≤10000 [输入样例] 1000.00 [输出样例] 10.000000 [源代码] #include<bits/stdc++.h> usin
题目链接:https://ac.nowcoder.com/acm/contest/9983/B 排序左端点 然后如果同分数的话 A的分要往后排 双指针 一直维护一个区间,合法的时候再更新ans 因为是单增的序列 所以可以保证正确答案一定在这 连续的一段产生 但写起来很多细节需要注意 1 #include<bits/stdc++.h> 2
题目比较水,但是为了给我的tag加点量就水一篇题解 这题一个暴力的贪心就是按照利润排序,然后对于大的利润去找能满足条件的最晚的一天 这样的复杂度比较高,找的过程可以可以用set自带的二分去做,这样就是nlogn了 #include<bits/stdc++.h> using namespace std; typedef long long ll
[CF466D] Increase Sequence Description 给定一个序列,可以对若干对区间 \([l,r]\) 中的数 +\(1\)(每个区间只能加一次),且保证任意两个区间的左端点不重合,右端点不重合。最终要求序列中所有元素值都等于 \(h\),请输出总方案数对 \(1e9+7\) 取模后的结果。 Solution 遍历一遍,维护当前
题目链接:https://ac.nowcoder.com/acm/contest/9981/B 思路:发现左右括号的规律:每个右括号的作用是与此右括号左侧的m个 左括号 构成m对括号 例如: ((){这个右括号产生了两个括号}(((){这个右括号产生了五个括号} 一共产生了七个括号 构造:每个数值 \(n= a \times b+res (res<b)\) b个左括
欧几里得距离 Description 在x轴上有n个城市,想从一个城市到另一个城市的路途实在太恼火了,为了减少路途消耗,决定在两城市之间修建一条单向的时空隧道,一城市到另一城市就可以无消耗的到达了,为了更加的节约时间,所以我们让任意两城市间都可以无消耗到达。修一条路的成本就是两点
龟速乘,快速乘法 龟速乘 在遇到求两个>1e9的数相乘mod m且m>1e9的情况下long long 会爆 我们便可以采取龟速乘来避免 ll mul(ll x,ll y,ll mod){ ll ans=0; while(y){ if(y&1) ans+=x,ans%=mod; x+=x; x%=mod; y>>=1; } } 原理便是把所乘数二进制分解 比如207=20(4+2+
算下作为最小值的最大长度,然后找下最大的。 // Author: levil #include<bits/stdc++.h> using namespace std; typedef long long LL; typedef pair<int,int> pii; const int N = 2e6+5; const int M = 1e6+5; const LL Mod = 1e9+7; #define rg register #define pi acos(-1) #
Dangling meta character '?' near index 0 报错修改,将 "?" 改成 "[?]" 10^9 + 7取余 (a% (1e9+7)) * (b% (1e9 +7)) %(1e9 +7) // a * b
5436. 一维数组的动态和 时间复杂度:O(n) 知识点:前缀和 根据题目给出的公式 runningSum[i] = sum(nums[0]…nums[i]),可得: 当 i > 0 时,runningSum[i] = runningSum[i-1] + nums[i] 当 i = 0 时,runningSum[i] = nums[i] class Solution { public: vector<int> runningSum(vec
题目 这题是交互题…… oj现在不支持交互题…… 所以直接在这讲讲题目大意吧。 有个分数xy\frac{x}{y}yx,你可以询问一个质数PPP,可以得到xy\frac{x}{y}yx在模PPP意义下的值。 最多可以询问555次。 数字的范围都在[1,1e9][1,1e9][1,1e9] 多组数据,数据最多10510^5105组。
题目链接:https://www.acwing.com/problem/content/102/ 给定一个序列,只能对一个区间加一或者减一,问至少需要多少步使得所有数都变成一致的?有多少种一致序列? 利用差分,对一个区间进行加一或者减一的话,一定是一个差分+1加上另一个差分-1。 代码如下: #include<bits/stdc++.h> using n
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1848 代码如下: #include<bits/stdc++.h> using namespace std; typedef unsigned int ui; typedef long long ll; typedef unsigned long long ull; #define pf printf #define mem(a,b) memset(a,b,sizeof(a)) #define p
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1846 代码: #include<bits/stdc++.h> using namespace std; typedef unsigned int ui; typedef long long ll; typedef unsigned long long ull; #define pf printf #define mem(a,b) memset(a,b,sizeof(a)) #define pri
dp: #include<bits/stdc++.h> using namespace std; typedef unsigned int ui; typedef long long ll; typedef unsigned long long ull; #define pf printf #define mem(a,b) memset(a,b,sizeof(a)) #define prime1 1e9+7 #define prime2 1e9+9 #define pi 3.14159265
题目: 分析: 考场上暴力都不会写。。。(辣鸡出题人暴力分都没有 发现\(n=pq,q-p<=3e5\)这个条件比较有趣,我们从这里入手 设\(q-p=y\) \(n=p(p+y)\) 解一元二次方程,舍掉\(-\Delta\) \(p=\frac{-y+\sqrt{y^2+4n}}{2}\) 设\(t=\frac{y}{2}\) 所以\(p=-t+\sqrt{t^2+n}\) 因为\(p\)是整