2020 CCPC Wannafly Winter Camp Day1 C. 染色图

定义一张无向图 G=⟨V,E⟩ 是 k 可染色的当且仅当存在函数 f:V↦{1,2,⋯,k} 满足对于 G 中的任何一条边 (u,v),都有 f(u)≠f(v)。

定义函数 g(n,k) 的值为所有包含 n 个点的无自环、无重边的 k 可染色无向图中的边数最大值。举例来说,g(3,1)=0,g(3,2)=2,g(3,3)=3。

现在给出三个整数 n,l,r,你需要求解:\((\sum_{i=l}^rg(n,i))mod998244354\)

输入格式:

第一行输入一个整数 \(T(1≤T≤10^3)\),表示数据组数。

对于每组数据,输入三个整数 \(n,l,r(1≤l≤r≤n≤10^9)\)。

输出格式

对于每组数据,输出一行一个整数表示答案。

输入样例:

5
3 1 1
3 2 2
5 2 4
10 3 9
1000 123 789

输出样例:

0
2
23
280
332539617

时间限制: 1000 ms

内存限制: 256 MB

代码长度限制: 16 KB

分析

n个点,m种颜色,可以分成\(m\)堆,每堆的颜色都是相同的,这样就会有\(n\%m\)堆有\(n/m+1\)个点,\(m-n\%m\)堆有\(n/m\)个点,堆与堆之间的点都是要两两连线的,而对于堆中的点,是不能有连线的,所以就是一个大的完全图减去m个小的完全图。将公式推出来之后,根据数据范围可知不可暴力,可以对每个\(n/m\)的取值,求出对应的\([l,r]\),然后进行计算。

\[{n \choose 2} - n\%m\times{\lceil{n\over m}\rceil \choose 2}-(m-n\%m)\times {\lfloor{n\over m}\rfloor \choose 2}
\]
\[\Downarrow
\]
\[{n \choose 2} - \lfloor {n\over m}\rfloor \times n + \lfloor {n \over m} \rfloor * (\lfloor {n\over m}\rfloor + 1)*m / 2
\]

枚举\(\lfloor {n\over m} \rfloor\)的值,求出对应的[l,r]

const int mod = 998244353;
int T;
ll n,l,r;
int main()
{
cin >> T;
while(T--){
cin >> n >> l >> r;
ll res = (r - l + 1) * (n * (n-1) / 2 % mod)%mod;
for(int i = l;i <= r;i = d+1){
ll tmp = n / i;
ll d = n / i ? min(n / tmp, r) : r; //求出商为tmp的r
ll num = d - i + 1; //区间长度
res = (res - num * tmp % mod * n % mod + tmp * (tmp + 1) / 2 % mod * num % mod * (d + i) / 2 + mod) % mod;
}
cout << res << endl;
}
return 0;
}

2020 CCPC Wannafly Winter Camp Day1 C. 染色图的更多相关文章

  1. 2020 CCPC Wannafly Winter Camp Day1 Div.1&amp F

    #include<bits/stdc++.h> #define forn(i, n) for (int i = 0; i < int(n); i++) #define fore(i, ...

  2. 2020 CCPC Wannafly Winter Camp Day1 - I. K小数查询(分块)

    题目链接:K小数查询 题意:给你一个长度为$n$序列$A$,有$m$个操作,操作分为两种: 输入$x,y,c$,表示对$i\in[x,y] $,令$A_{i}=min(A_{i},c)$ 输入$x,y ...

  3. 2020 CCPC Wannafly Winter Camp Day2-K-破忒头的匿名信

    题目传送门 sol:先通过AC自动机构建字典,用$dp[i]$表示长串前$i$位的最小代价,若有一个单词$s$是长串的前$i$项的后缀,那么可以用$dp[i - len(s)] + val(s)$转移 ...

  4. 2020 CCPC Wannafly Winter Camp Day1-F-乘法

    题目传送门 sol:二分答案$K$,算大于$K$的乘积有多少个.关键在于怎么算这个个数,官方题解上给出的复杂度是$O(nlogn)$,那么计算个数的复杂度是$O(n)$的.感觉写着有点困难,自己写了一 ...

  5. CCPC Wannafly Winter Camp Div2 部分题解

    Day 1, Div 2, Prob. B - 吃豆豆 题目大意 wls有一个\(n\)行\(m\)列的棋盘,对于第\(i\)行第\(j\)列的格子,每过\(T[i][j]\)秒会在上面出现一个糖果, ...

  6. 2019 wannafly winter camp

    2019 wannafly winter camp Name Rank Solved A B C D E F G H I J K day1 9 5/11 O O O O O day2 5 3/11 O ...

  7. 2019 wannafly winter camp day 3

    2019 wannafly winter camp day 3 J 操作S等价于将S串取反,然后依次遍历取反后的串,每次加入新字符a,当前的串是T,那么这次操作之后的串就是TaT.这是第一次转化. 涉 ...

  8. Wannafly Winter Camp 2020 Day 7E 上升下降子序列 - 数学

    神奇公式 #include <bits/stdc++.h> using namespace std; #define int long long int n,mod,c[205][205] ...

  9. Wannafly Winter Camp 2020 Day 7D 方阵的行列式 - 数学

    于是去弄了个板子来 #include <bits/stdc++.h> using namespace std; #define int long long const int mod = ...

随机推荐

  1. PHP SDK短信接口

    /** * sdk 短信接口 * @param $tel 手机号 * @param $content 短信内容 * @return bool */ public function telSDK($te ...

  2. 初识sa-token,一行代码搞定登录授权!

    前言 在java的世界里,有很多优秀的权限认证框架,如Apache Shiro.Spring Security 等等.这些框架背景强大,历史悠久,其生态也比较齐全. 但同时这些框架也并非十分完美,在前 ...

  3. Tomcat7,Tomcat8 的manager 配置

    1.打开文件:tomcat目录-->conf-->tomcat-users.xml  2.将以下代码替换原来的所有内容,不要犹豫,就是所有内容. <?xml version=&quo ...

  4. 【C++】《Effective C++》第九章

    杂项讨论 条款53:不要轻忽编译器的警告 请记住 严肃对待编译器发出的警告信息.努力在你的编译器的最高(最严苛)警告级别下争取"无任何警告"的容易. 不要过度依赖编译器的报警能力, ...

  5. 剑指offer 面试题3:数组中重复的数字

    题目描述 在一个长度为n的数组里的所有数字都在0到n-1的范围内. 数组中某些数字是重复的,但不知道有几个数字是重复的.也不知道每个数字重复几次.请找出数组中任意一个重复的数字. 例如,如果输入长度为 ...

  6. 【JS学习】for-in与for-of

    前言:本博客系列为学习后盾人js教程过程中的记录与产出,如果对你有帮助,欢迎关注,点赞,分享.不足之处也欢迎指正,作者会积极思考与改正. 总述: 名称 遍历 适用 for-in 索引 主要建议白能力对 ...

  7. MyBatis 查询数据时属性中多对一的问题(多条数据对应一条数据)

    数据准备 数据表 CREATE TABLE `teacher`( id INT(10) NOT NULL, `name` VARCHAR(30) DEFAULT NULL, PRIMARY KEY ( ...

  8. Received empty response from Zabbix Agent at [agent]. Assuming that agent dropped connection because of access permission

    Received empty response from Zabbix Agent at [agent]. Assuming that agent dropped connection because ...

  9. Ice系列--强大如我IceGrid

    前言 IceGrid是一个提供服务定位和服务激活的组件,但它的功能远不止于此.从它的命名可以看出它的设计理念-网格计算(grid computing).网格计算被定义为由一系列关联的廉价计算机组成的计 ...

  10. Spring-AOP为类增加新的功能

    适配器的简单应用实现: 比如:有一个类Car,在类中有两个属性一个为汽车名name,另一个为速度speed.其行为为run(). 现在有一辆车BMWCar 增加了GPS功能.如下实现: 基本类: pu ...