luogu P5596 【XR-4】题
题目背景
xht37 喜欢分块,以至于对一道不需要分块的题也要分块做。
题目描述
有一个长度为 nn 的序列,xht37 现在想分块维护它。
PinkRabbit 要求他只准将序列分成 PRPR 种长度的块。
NaCly_Fish 要求他只准将序列分成 NFNF 种长度的块。
同一个人可能会要求 xht37 多次相同的块长。
xht37 想同时满足 PinkRabbit 和 NaCly_Fish 要求,只好使用两个人都允许的长度分块。
xht37 想知道,有多少种不同的分块方案,答案对 10 ^ 9 + 7 取模。
输入格式
第一行一个正整数 nn,表示序列的长度。
第二行一个正整数 PRPR,表示 PinkRabbit 要求的分块长度的种类数。
第三行 PRPR 个正整数,表示 PinkRabbit 要求的 PRPR 种分块长度。
第四行一个正整数 NFNF,表示 NaCly_Fish 要求的分块长度的种类数。
第五行 NFNF 个正整数,表示 NaCly_Fish 要求的 NFNF 种分块长度。
输出格式
输出一行一个整数,表示不同分块方案的种类数对 10 ^ 9 + 7取模的值。
说明/提示
对于 100% 的数据,1<=a<=1e8 ,1<=b<=1e15
由上式可得(2x+2y+a)(2x−2y−a)=a^2-4b
然后设m=2x+2y+a,n=2x-2y-a可以对a^2-4b进行分类讨论
枚举n的值,判断是否满足条件
因为m>n必须成立,所以n<=sqrt(a^2-4b)
时间复杂度sqrt(a^2-4b)
#include<cmath>
#include<cstdio>
#include<iostream>
#define ll long long
#define int long long
using namespace std;
signed main(){
int a,b,ans=0;
scanf("%lld%lld",&a,&b);
if((a/2)*(a/2)==b&&!(a%2)){
puts("inf");
return 0;
}
ll k=a*a-4*b;
if(k>0){
ll k=a*a-4*b;
for(ll n=1;n*n<=k;n++){
int m=k/n;
if(k%n==0&&n+m>=2*a&&m>=n){
if((m-n)%4==0&&(n+m-2*a)%4==0){
ll x=(n+m-2*a)>>2,y=(m-n)>>2;
if(x>=0&&y>=0)ans++;
}
}
}
}
else{
ll k=4*b-a*a;
for(ll n=1;n*n<=k;n++){
int m=k/n;
if(k%n==0&&m>=n+2*a){
if((m-n-2*a)%4==0&&(n+m)%4==0){
ll x=(m-n-2*a)>>2,y=(n+m)>>2;
if(x>=0&&y>=0)ans++;
}
}
}
}
cout<<ans<<endl;
return 0;
}
luogu P5596 【XR-4】题的更多相关文章
- Luogu P2756 [网络流24题]飞行员配对方案问题_二分图匹配
二分图模板题 我用的是匈牙利 其实最大流也可以做 #include<iostream> #include<cstdio> #include<cstdlib> #in ...
- 【题解】 Luogu P4145 上帝造题的七分钟2 / 花神游历各国
原题传送门 这道题实际和GSS4是一样的,只是输入方式有点区别 GSS4传送门 这道题暴力就能过qaq(这里暴力指线段树) 数据比较水 开方修改在线段树中枚举叶节点sqrt 查询区间和线段树基本操作 ...
- Luogu 4514 上帝造题的七分钟
二维差分+树状数组. 定义差分数组$d_{i, j} = a_{i, j} + a_{i - 1, j - 1} - a_{i, j - 1} - a_{i - 1, j}$,有$a_{i, j} = ...
- 【Luogu】P2220容易题(快速幂)
这题真是“容易”.呵呵呵. 参考题解:xyz32768 代码 #include<cstdio> #include<map> #include<algorithm> ...
- [ Luogu 4626 ] 一道水题 II
\(\\\) \(Description\) 求一个能被\([1,n]\) 内所有数整除的最小数字,并对 \(100000007\) 取模 \(N\in [1,10^8]\) \(\\\) \(Sol ...
- [Luogu] P4626 一道水题 II
---恢复内容开始--- 题目描述 一天,szb 在上学的路上遇到了灰太狼. 灰太狼:帮我们做出这道题就放了你. szb:什么题? 灰太狼:求一个能被 [1,n] 内所有数整除的最小数字,并对 100 ...
- [luogu] P4514 上帝造题的七分钟 (树状数组,二维差分)
P4514 上帝造题的七分钟 题目背景 裸体就意味着身体. 题目描述 "第一分钟,X说,要有矩阵,于是便有了一个里面写满了0的n×m矩阵. 第二分钟,L说,要能修改,于是便有了将左上角为(a ...
- luogu P2791 幼儿园篮球题
传送门 先看我们要求的是什么,要求的期望就是总权值/总方案,总权值可以枚举进球的个数\(i\),然后就应该是\(\sum_{i=0}^{k} \binom{m}{i}\binom{n-m}{k-i}i ...
- Luogu P2756 [网络流24题]飞行员配对方案问题_二分图匹配题解
二分图模板题 我用的是匈牙利 其实最大流也可以做 #include<iostream> #include<cstdio> #include<cstdlib> #in ...
随机推荐
- java中 equals和==区别
一.java当中的数据类型和“==”的含义: 基本数据类型(也称原始数据类型) :byte,short,char,int,long,float,double,boolean.他们之间的比较,应用双等号 ...
- windows中修改IP映射的位置
windows中修改IP映射的位置 置顶 2018年08月05日 14:42:44 wangxiaolong0 阅读数:1473 在安装linux之后,发现windows不能通过映射来访问linu ...
- spring 是如何注入对象的和bean 创建过程分析
文章目录: beanFactory 及 bean 生命周期起步 BeanFactory refresh 全过程 BeanFactoryPostProcessor 和 BeanPostProcessor ...
- 【集合系列】- 深入浅出分析LinkedHashMap
一.摘要 在集合系列的第一章,咱们了解到,Map的实现类有HashMap.LinkedHashMap.TreeMap.IdentityHashMap.WeakHashMap.Hashtable.Pro ...
- netty源码解析(4.0)-29 Future模式的实现
Future模式是一个重要的异步并发模式,在JDK有实现.但JDK实现的Future模式功能比较简单,使用起来比较复杂.Netty在JDK Future基础上,加强了Future的能力,具体体现在: ...
- 理解Spark运行模式(一)(Yarn Client)
Spark运行模式有Local,STANDALONE,YARN,MESOS,KUBERNETES这5种,其中最为常见的是YARN运行模式,它又可分为Client模式和Cluster模式.这里以Spar ...
- 力扣(LeetCode)2的幂 个人题解
给定一个整数,编写一个函数来判断它是否是 2 的幂次方. 示例 1: 输入: 1 输出: true 解释: 20 = 1 示例 2: 输入: 16 输出: true 解释: 24 = 16 示这题是考 ...
- 从壹开始 [ Design Pattern ] 之二 ║ 单例模式 与 Singleton
前言 这一篇来源我的公众号,如果你没看过,正好直接看看,如果看过了也可以再看看,我稍微修改了一些内容,今天讲解的内容如下: 一.什么是单例模式 [单例模式],英文名称:Singleton Patter ...
- HTML_本地存储
在HTML5当中,新增了很多的存储方式,这里我先介绍两种,方便我们的使用和操作,具体新加入了一个localStorage特性,这个特性主要是用来作为本地存储来使用的,解决了cookie存储空间不足的问 ...
- Android开源项目和轮子
推荐查看Github最全面的Android开源项目汇总 功能框架 数据库 ORMLite框架 greenDaoMaster框架 Xutils的DButils ORMLitehe和greenDaoMas ...