Codeforces1379 B. Dubious Cyrpto(枚举)
题意:
给定l,r,m
要求构造出一组a,b,c,满足:
l<=a,b,c<=r,存在一个正整数n,na+b-c=m
数据范围:l,r<=5e5,m<=1e10
解法:
容易想到枚举,要么枚举a,要么枚举b-c,
但是应该枚举a好做一点。
b-c的范围在l-r到r-l之间
枚举a,令x=m%a,n=m/a,因为x是用取模操作得到的,所以一定>=0
如果n>=1且x<=r-l,那么可以构造出b=x+l,c=l,因为x一定是小于a的,所以x+l一定是<=r的
如果x>r-l,因为b-c的范围在l-r到r-l之间,而这里超出了范围,说明b-c原本是一个负数,正叔是因为取模操作只能得到正数,实际上x=b-c+a,多加了一个a,那么b-c=x-a,设p=x-a就判断p是否>=l-r,如果满足则可以构造出b=r+p,c=r。这种情况不用判断n是否>=1,因为b-c还回去了一个a。
code:
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int maxm=1e5+5;
int l,r,m;
void solve(){cin>>l>>r>>m;for(int a=l;a<=r;a++){int bc=m%a;int n=m/a;if(n>=1&&bc<=r-l){//bc=b-ccout<<a<<' '<<l+bc<<' '<<l<<endl;return ;}else{//bc=b-c+abc=bc-a;//修正if(bc>=l-r){cout<<a<<' '<<r+bc<<' '<<r<<endl;return ;}}}
}
signed main(){ios::sync_with_stdio(0);int T;cin>>T;while(T--){solve();}return 0;
}
Codeforces1379 B. Dubious Cyrpto(枚举)相关推荐
- Codeforces B. Dubious Cyrpto (枚举 / 模拟) (Round #657 Div.2)
传送门 题意: 已知存在三个数a,b,c满足l <= a,b,c <= r,且m = n * a + b - c.现在告诉你l,r和m的值,需要你找到一组可行的a,b,c. 思路: 枚举a ...
- [codeforces 1379B] Dubious Cyrpto 公式推导
Codeforces Round #657 (Div. 2) 参与排名人数8684 错过了难得17:00比赛,可惜 [codeforces 1379B] Dubious Cyrpto 公 ...
- Codeforces Round #657 (Div. 2)B. Dubious Cyrpto
思路 题目要求: na+b−c=mna+b-c=m na+b−c=m 我们可以转换为 na−m=c−bna-m=c-b na−m=c−b 然后c−bc-bc−b是固定不变的,我们去枚举a,在枚举的a的 ...
- B. Dubious Cyrpto(思维+枚举)
题目 大致翻译:帕夏喜欢把严格的正整数送给他的朋友.帕夏关心安全性,因此当他想发送一个整数n时,他用以下方式对它进行加密:他选取三个整数a.b和c,使l≤a.b.c≤r,然后计算加密值m=n⋅a+b− ...
- Codeforces Round #657 (Div. 2) B. Dubious Cyrpto(思维,数学)
题目链接 题意: m=n⋅a+b−c(n为任意正整数),给出m的值a,b,c的范围l,r(l<=a,b,c<=r),求出a,b,c. 思路: 由推倒知0<=|b-c|<=r-l ...
- codeforces1379B Dubious Cyrpto
https://codeforces.com/contest/1379/problem/B 可以想到其实就是让n*a=(m-(r-l),m+r-l)中的一个数 然后直接枚举a=l->r 令l2= ...
- B. Dubious Cyrpto
https://codeforces.com/contest/1379/problem/B 如果m>i,则有两种情况,m%i在范围内或者i-m%i在范围内,m<i,只有i-m%i的情况. ...
- Codeforces 1379B.Dubious Cyrpto
1 题目描述(题目链接) 2 题解 由题意得,na=m+c−bna=m+c-bna=m+c−b,则na∈[m+l−r,m+r−l]na\in [m+l-r,m+r-l]na∈[m+l−r,m+r− ...
- Codeforces Round #657 (Div. 2) B题 Dubious Cyrpto
m是被除数,a是除数,n的商,b-c是余数.切记,考虑b-c是负数的情况.切记 !切记 ! 二话不说上代码: #include <iostream> #include <algori ...
最新文章
- python【力扣LeetCode算法题库】46- 全排列
- TFS数据库变成可疑状态的处理
- Django之orm补充
- java list 删除元素_Java面试题:List如何一边遍历,一边删除?
- 如何在 ASP.NET Core MVC 5 中处理未知的 Action
- 微软发布ReactXP:方便开发者构建跨平台应用
- windows内核情景分析---进程线程2
- ios定位权限plist_iOS-info.plist 中添加定位权限
- argo 现水下永动机器人_水下永动机器人现身
- c语言实验交换字母,新C语言实验学生版
- 隐马尔可夫(HMM)模型的各种语言实现
- c++ 副本构造器
- 一个html可以有几个h1,关于html:HTML5大纲和多个H1 SEO
- 22.客户端识别与 cookie 机制
- 小区物业收费管理系统
- 基于Spark的电影推荐系统(毕业设计)
- win10系统在文件夹中图片不显示内容问题
- Dashboard Design 4.0(Xcelsius)数据直接绑定功能:瑕瑜互见
- 阿里云企业实名认证教程
- 修改设置 打造安全的个人电脑(转)