思维dp ---- Codeforces Round #722 (Div. 1) B. Kavi on Pairing Duty [思维dp + 数学]
题目大意:
将2n2n2n个点两两相连形成n对,对于任意两个点对A和B,要求至少满足其中一条:
1.A和B的某一个完全包含于另一个中
2.A和B的长度相等.问你一共有多少种方案.
解题思路:
题解:假设第一个区间的左端点为1,右端点为x,对x分两种情况来分析.
1.x>nx>nx>n,那么所有大于xxx的点,因为它不完全包含于[1,x][1,x][1,x],所以它们的长度都相同,左端点确定,那么在[1,x][1,x][1,x]内,就会有一些点空出来,这些点我们可以看成是一种子情况,所以可以用前缀和来维护.注意:就是这里着中间有空点的情况!那么要用前缀和维护
2.x≤nx≤nx≤n,那么所有的点对长度相同,我们连接111和xxx后,[1,x][1,x][1,x]中间会空出x−2x−2x−2个点,将中间的这些点和对应的右端点连接,全部连完后,最右端点扩展到了x+x−2x+x−2x+x−2,即2∗(x−1)2∗(x−1)2∗(x−1),那么我们可以将这看成一个完整的块,这个块有2∗(x−1)2∗(x−1)2∗(x−1)个点,很明显,只有2nmod2∗(x−1)=02nmod2∗(x−1)=02nmod2∗(x−1)=0时才合法, 所以x−1x−1x−1一定要是nnn的因子(不含1).
那么我们就能得出递推式子:dp[i]=pre[i−1]+divisors[i].dp[i]=pre[i−1]+divisors[i].dp[i]=pre[i−1]+divisors[i].
#include <bits/stdc++.h>
#define mid ((l + r) >> 1)
#define Lson rt << 1, l , mid
#define Rson rt << 1|1, mid + 1, r
#define ms(a,al) memset(a,al,sizeof(a))
#define log2(a) log(a)/log(2)
#define lowbit(x) ((-x) & x)
#define IOS std::ios::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define INF 0x3f3f3f3f
#define LLF 0x3f3f3f3f3f3f3f3f
#define f first
#define s second
#define endl '\n'
using namespace std;
const int N = 2e6 + 10, mod = 998244353;
const int maxn = 1500010;
const long double eps = 1e-5;
const int EPS = 500 * 500;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int,int> PII;
typedef pair<ll,ll> PLL;
typedef pair<double,double> PDD;
template<typename T> void read(T &x)
{x = 0;char ch = getchar();ll f = 1;while(!isdigit(ch)){if(ch == '-')f*=-1;ch=getchar();}while(isdigit(ch)){x = x*10+ch-48;ch=getchar();}x*=f;
}
template<typename T, typename... Args> void read(T &first, Args& ... args) {read(first);read(args...);
}int divs[maxn],a[maxn];int main() {IOS;int n;cin >> n; for(int i = 1; i < maxn; ++ i)for(int j = i; j < maxn; j += i)divs[j] ++;a[1] = 1;for(int i = 2; i <= n; ++ i)a[i] = (2 * a[i - 1] % mod + divs[i]) % mod;cout << (a[n] - a[n - 1] + mod) % mod;
}
思维dp ---- Codeforces Round #722 (Div. 1) B. Kavi on Pairing Duty [思维dp + 数学]相关推荐
- Codeforces Round #722 (Div. 2)
Codeforces Round #722 (Div. 2) 题号 题目 知识点 A Eshag Loves Big Arrays(题解略) 贪心 B Sifid and Strange Subseq ...
- Codeforces Round #617 (Div. 3) E2. String Coloring (hard version) 思维 + dp + Dilworth定理
传送门 文章目录 题意: 思路: 题意: 让你给一个串染色,不同颜色且相邻的一对字符可以互换位置,用最少的颜色,使交换后这个字符串字典序最小. 思路: 考虑将字符串分成若干个非递减的子序列,由于其非递 ...
- Codeforces Round #579 (Div. 3) F2. Complete the Projects (hard version) dp + 贪心
传送门 文章目录 题意: 思路: 题意: 思路: 排序方式跟easyeasyeasy版本的一样,但是hardhardhard版本是输出最多能选多少,所以我们对b<0b<0b<0的情况 ...
- Codeforces Round #732 (Div. 2) C. AquaMoon and Strange Sort 思维
传送门 文章目录 题意: 思路: 题意: 给你nnn个数,每个数初始方向是向右,每次可以交换相邻两个位置并且将这两个位置的方向调换,问这个序列的最终状态能否是非递减且方向都向右. n≤1e5,ai≤1 ...
- Codeforces Round #588 (Div. 2) D. Marcin and Training Camp 思维
传送门 文章目录 题意: 思路: 题意: 有nnn个人,每个人都有一个能力值bib_ibi以及他会的技能aia_iai,当他会第xxx个技能的时候,aia_iai的第xxx位是111.定义当xx ...
- Codeforces Round #590 (Div. 3) F. Yet Another Substring Reverse 子集dp
传送门 文章目录 题意: 思路: 题意: 思路: 之前做过类似的题,翻转一个字串相当于将任意两个不相交的串连在一起.再一看字符集≤20\le20≤20,那就是铁子集dpdpdp了. 定义f[i]f[i ...
- Codeforces Round #598 (Div. 3) E. Yet Another Division Into Teams dp + 输出方案
传送门 文章目录 题意: 思路: 题意: 给你一个长度为nnn的序列aaa,你需要将其分成若干组,每组的价值为max(ai)−min(ai)\max(a_i)-min(a_i)max(ai)−mi ...
- Codeforces Round #599 (Div. 2) E. Sum Balance 图转换 + 子集dp + 环
传送门 文章目录 题意: 思路: 题意: 思路: 首先我们知道如果所有数的和summodk!=0sum\bmod k!=0summodk!=0那么此时无解,否则我们设need=sum/kneed=su ...
- Codeforces Round #635 (Div. 1) C. Kaavi and Magic Spell 区间dp
传送门 文章目录 题意: 思路: 题意: 给你两个串s,ts,ts,t,每次都可以从sss的开头拿一个字符放到AAA串的开头或结尾,问最终有多少种方案使得ttt是AAA的前缀,注意sss不必全部拿完. ...
最新文章
- 技术人员如何摆脱移生万物时代的焦虑
- 以太网输入输出处理的实现
- threadlocal内存泄露_ThreadLocal 简介
- 计算机接口配件,最近发布:最新的计算机外部接口计算机主板外部接口简介计算机主板接口简介...
- Caused by: java.net.BindException: Could not start rest endpoint on any port in port range 8085
- 前端应该关注的2021年UI设计趋势
- 第 5-2 课:线程池——ThreadPoolExecutor + 面试题
- Ta 在假笑么?这个识别算法可以鉴定
- 单片机和微型计算机硬件组成的异同,嵌入式和单片机的区别是什么?两者有什么联系...
- mysql 批量数据循环插入
- php 库下载,远程文件下载php类库
- 批处理删除文件夹命令_批处理文件夹命令
- 苹果维修服务器gsx查询,手机苹果官网怎么查序列号(苹果gsx免费查询公众号)...
- 2.4G无线音箱四层PCB设计学习(一)
- XML保存衣服尺码信息
- 如何在被伽卡他卡教师端控制时解除控制
- 首批最佳骑行路线揭晓
- Uigg - 免费开源、灵活的高颜值前端 UI 工具套件,专为设计师打造
- 关于H5的知识点(HTML+CSS+JS)
- IBM小型机的LPAR特性