[CF938C] Constructing Tests - 构造
时间:2020-04-28
本文章向大家介绍[CF938C] Constructing Tests - 构造,主要包括[CF938C] Constructing Tests - 构造使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Description
给定两个正整数 \(n,m(m≤n)\),对于一个 \(n\) 阶 \(0-1\) 方阵, 其任意 \(m\) 阶子方阵中至少有一个元素 \(“0”\),则可以求解这个方阵中的 \(“1”\) 的最大数目。现求解这个问题的逆向问题:已知这个最大数目为 \(X\),求相应的 \(n\) 和 \(m\)。
Solution
设法让每个 \(0\) 被充分地利用
于是 \(n,m,x\) 满足关系
\[n^2-\lfloor\frac n m \rfloor^2=x
\]
令 \(t=\lfloor n/m \rfloor\),则
\[(n+t)(n-t)=x
\]
枚举 \(x\) 的所有分解 \(x=ab\),那么 \(x\) 可以分解为平方差当且仅当 \(a,b\) 的奇偶性相同,此时
\[n=\frac{a+b} 2, \ t=\frac{a-b} 2
\]
如果我们找到了这个分解 \(n,t\),则只需要存在一个 \(m\) 使得 \(t=\lfloor n/m \rfloor\) 即可,我们只需要假设 \(m=n/t\) 判断一下是否可行即可
#include <bits/stdc++.h>
using namespace std;
#define int long long
int t,x;
signed main() {
ios::sync_with_stdio(false);
cin>>t;
while(t--) {
cin>>x;
if(x==0) {
cout<<1<<" "<<1<<endl;
}
else if(x==1) {
cout<<-1<<endl;
}
else {
for(int a=1;a*a<x;a++) {
int b=x/a;
if(a*b!=x) continue;
if((a^b)&1) continue;
int n=(a+b)/2,t=(b-a)/2;
int m=n/t;
if(t==n/m) {
cout<<n<<" "<<m<<endl;
goto ok;
}
}
cout<<-1<<endl;
ok:cout<<"";
}
}
}
原文地址:https://www.cnblogs.com/mollnn/p/12795400.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 如何使用 S3CMD 访问 COS 服务
- 利用STS临时密钥服务快速搭建直传页面的实践
- codeforces 1436C(二分+数学)
- WAF案例:为什么curl可以wget不行?
- React进阶(4)-拆分Redux-将store,Reducer,action,actionTypes独立管理
- React进阶(5)-分离容器组件,UI组件(无状态组件)
- React进阶(6)-react-redux的使用
- Kubernetes 1.19.0——服务svc(2)
- Android菜单的定义及ActionBar的实现
- 3分钟短文:Laravel表单验证的“指挥中心”:FormRequest
- 10 种跨域解决方案(附终极方案)
- 架构师教你kill祖传石山代码重复/大量ifelse
- TKE集群,一次磁盘挂载问题处理
- Linux Load Average详解
- 5. Bean Validation声明式验证四大级别:字段、属性、容器元素、类