题目背景

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】题的更多相关文章

  1. Luogu P2756 [网络流24题]飞行员配对方案问题_二分图匹配

    二分图模板题 我用的是匈牙利 其实最大流也可以做 #include<iostream> #include<cstdio> #include<cstdlib> #in ...

  2. 【题解】 Luogu P4145 上帝造题的七分钟2 / 花神游历各国

    原题传送门 这道题实际和GSS4是一样的,只是输入方式有点区别 GSS4传送门 这道题暴力就能过qaq(这里暴力指线段树) 数据比较水 开方修改在线段树中枚举叶节点sqrt 查询区间和线段树基本操作 ...

  3. Luogu 4514 上帝造题的七分钟

    二维差分+树状数组. 定义差分数组$d_{i, j} = a_{i, j} + a_{i - 1, j - 1} - a_{i, j - 1} - a_{i - 1, j}$,有$a_{i, j} = ...

  4. 【Luogu】P2220容易题(快速幂)

    这题真是“容易”.呵呵呵. 参考题解:xyz32768 代码 #include<cstdio> #include<map> #include<algorithm> ...

  5. [ Luogu 4626 ] 一道水题 II

    \(\\\) \(Description\) 求一个能被\([1,n]\) 内所有数整除的最小数字,并对 \(100000007\) 取模 \(N\in [1,10^8]\) \(\\\) \(Sol ...

  6. [Luogu] P4626 一道水题 II

    ---恢复内容开始--- 题目描述 一天,szb 在上学的路上遇到了灰太狼. 灰太狼:帮我们做出这道题就放了你. szb:什么题? 灰太狼:求一个能被 [1,n] 内所有数整除的最小数字,并对 100 ...

  7. [luogu] P4514 上帝造题的七分钟 (树状数组,二维差分)

    P4514 上帝造题的七分钟 题目背景 裸体就意味着身体. 题目描述 "第一分钟,X说,要有矩阵,于是便有了一个里面写满了0的n×m矩阵. 第二分钟,L说,要能修改,于是便有了将左上角为(a ...

  8. luogu P2791 幼儿园篮球题

    传送门 先看我们要求的是什么,要求的期望就是总权值/总方案,总权值可以枚举进球的个数\(i\),然后就应该是\(\sum_{i=0}^{k} \binom{m}{i}\binom{n-m}{k-i}i ...

  9. Luogu P2756 [网络流24题]飞行员配对方案问题_二分图匹配题解

    二分图模板题 我用的是匈牙利 其实最大流也可以做 #include<iostream> #include<cstdio> #include<cstdlib> #in ...

随机推荐

  1. 02-model设计

    一.项目依赖包安装 1.安装Django(2.2.7) pip3 install django 2.安装DjangoRestFramework 因为DjangoRestFramework是基于Djan ...

  2. php imagick svg转成jpg

    php imagick svg转成jpg <pre> public function svgtojpg() { $image = '<?xml version="1.0&q ...

  3. SpringBoot 源码解析 (二)----- Spring Boot精髓:启动流程源码分析

    本文从源代码的角度来看看Spring Boot的启动过程到底是怎么样的,为何以往纷繁复杂的配置到如今可以这么简便. 入口类 @SpringBootApplication public class He ...

  4. PHP Laravel 中使用简单的方法跟踪用户是否在线

    今天,我的任务是,在 Laravel 应用程序用户个人资料页面上,用户名旁边添加一个绿点,表示他们是否在线.我首先想到的是,我们将需要启动一个 node.js 服务器并跟踪每个用户的活动套接字连接.然 ...

  5. nyoj 84-阶乘的0 (规律题)

    84-阶乘的0 内存限制:64MB 时间限制:3000ms 特判: No 通过数:7 提交数:9 难度:3 题目描述: 计算n!的十进制表示最后有多少个0 输入描述: 第一行输入一个整数N表示测试数据 ...

  6. opencv之常用还是忘,那咋办嘛

    相机标定:https://blog.csdn.net/y2c58s43d69g8h7G_g/article/details/97239418 畸变参数个数要是镜头太凸的话,就像鱼眼相机和哨兵150视角 ...

  7. HTTP,HTTPS,HTTP2笔记

    HTTP 网络协议分层 应用层 -> HTTP FTP 为应用软件提供了很多服务 构建于TCP协议之上 屏蔽网络传输的相关细节 传输层 -> TCP UDP 向用户提供可靠的端对端的服务( ...

  8. ubuntu 16.04 上使用pybind11进行C++和Python代码相互调用 | Interfacing C++ and Python with pybind11 on ubuntu 16.04

    本文首发于个人博客https://kezunlin.me/post/a41adc1/,欢迎阅读! Interfacing C++ and Python with pybind11 on ubuntu ...

  9. [ML机器学习 - Stanford University] - Week1 - 01 Introduction

    What is Machine Learning? Two definitions of Machine Learning are offered. Arthur Samuel described i ...

  10. IT人该如何未雨绸缪,不断提升自己的竞争力?同时尽量避免风险?

    人会慢慢变老,变老后精力,记忆力乃至身体会慢慢变差,这是无法逆转的自然规律.随之会产生的是对中年危机的忧虑乃至恐惧,比如担心能力精力不及年轻人,从而导致收入锐减乃至失业. 对此我有如下三点不解.第一, ...