题意:

给定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(枚举)相关推荐

  1. 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 ...

  2. [codeforces 1379B] Dubious Cyrpto 公式推导

    Codeforces Round #657 (Div. 2)   参与排名人数8684   错过了难得17:00比赛,可惜 [codeforces 1379B]   Dubious Cyrpto  公 ...

  3. 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的 ...

  4. B. Dubious Cyrpto(思维+枚举)

    题目 大致翻译:帕夏喜欢把严格的正整数送给他的朋友.帕夏关心安全性,因此当他想发送一个整数n时,他用以下方式对它进行加密:他选取三个整数a.b和c,使l≤a.b.c≤r,然后计算加密值m=n⋅a+b− ...

  5. 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 ...

  6. codeforces1379B Dubious Cyrpto

    https://codeforces.com/contest/1379/problem/B 可以想到其实就是让n*a=(m-(r-l),m+r-l)中的一个数 然后直接枚举a=l->r 令l2= ...

  7. B. Dubious Cyrpto

    https://codeforces.com/contest/1379/problem/B 如果m>i,则有两种情况,m%i在范围内或者i-m%i在范围内,m<i,只有i-m%i的情况. ...

  8. 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− ...

  9. Codeforces Round #657 (Div. 2) B题 Dubious Cyrpto

    m是被除数,a是除数,n的商,b-c是余数.切记,考虑b-c是负数的情况.切记 !切记 ! 二话不说上代码: #include <iostream> #include <algori ...

最新文章

  1. python【力扣LeetCode算法题库】46- 全排列
  2. TFS数据库变成可疑状态的处理
  3. Django之orm补充
  4. java list 删除元素_Java面试题:List如何一边遍历,一边删除?
  5. 如何在 ASP.NET Core MVC 5 中处理未知的 Action
  6. 微软发布ReactXP:方便开发者构建跨平台应用
  7. windows内核情景分析---进程线程2
  8. ios定位权限plist_iOS-info.plist 中添加定位权限
  9. argo 现水下永动机器人_水下永动机器人现身
  10. c语言实验交换字母,新C语言实验学生版
  11. 隐马尔可夫(HMM)模型的各种语言实现
  12. c++ 副本构造器
  13. 一个html可以有几个h1,关于html:HTML5大纲和多个H1 SEO
  14. 22.客户端识别与 cookie 机制
  15. 小区物业收费管理系统
  16. 基于Spark的电影推荐系统(毕业设计)
  17. win10系统在文件夹中图片不显示内容问题
  18. Dashboard Design 4.0(Xcelsius)数据直接绑定功能:瑕瑜互见
  19. 阿里云企业实名认证教程
  20. 修改设置 打造安全的个人电脑(转)

热门文章

  1. @Enumerated的使用
  2. 自定义注解(中英文字段名字映射)
  3. 群晖虚拟机安装centos7.9
  4. mysql的题目_mysql经典例题
  5. BandZIP无广告版(v6.25)安装及禁止联网设置
  6. vue中数据劫持代理
  7. 日历农历vue包括24节气等内容
  8. 英特尔图形处理器第8代架构
  9. 区分Linux:eth0,eth1,eth2,lo
  10. 链接无线路由器后局域网无法连接服务器,局域网部分电脑连接路由器(交换机)后无法上网该怎么解决?...