定义 f ( n , m ) f(n,m) f(n,m)为比 n n n大的第 m m m个与 n n n互质的数,给出 ( f ( n , m ) − n ) ⊕ n (f(n,m)-n)\oplus n (f(n,m)−n)⊕n和 m m m,求最小的 n n n。

Source:2019 Multi-University Training Contest 6

因为异或满足自反性,不妨另 ( f ( n , m ) − n ) ⊕ n = k (f(n,m)-n)\oplus n=k (f(n,m)−n)⊕n=k,则 f ( n , m ) − n = k ⊕ n f(n,m)-n=k\oplus n f(n,m)−n=k⊕n,因为 m ≤ 100 m\leq100 m≤100,所以 f ( n , m ) − n f(n,m)-n f(n,m)−n不会超过1e3(具体最大没算过,1e3完全足够了),我们可以枚举 k ⊕ n k\oplus n k⊕n,然后找出最小的满足条件 n n n即可。
UPD:wa了两次最后发现是inf开小了…

#include <bits/stdc++.h>
#define ll long long
ll gcd(ll p, ll q) { return q == 0 ? p : gcd(q, p % q); }
using namespace std;
const long long inf = ((1LL<<62)-1)|(1LL<<62);
const int maxi = 1e3 + 10;ll k,m;
ll f(ll n,int m){ll cnt=m,i=n;while(cnt){i++;if(gcd(n,i)==1) cnt--;}return i;
}
int main() {int T;scanf("%d", &T);while(T--){scanf("%lld%lld",&k,&m);ll minn=inf;for(ll i=0;i<=maxi;i++){ll n=i^k;//n=(k^n)^kif(n && f(n,m)==n+i) {minn = min(minn, n);}}if(minn==inf) printf("-1\n");else printf("%lld\n",minn);}return 0;
}

HDU 6641 TDL 异或性质相关推荐

  1. HDU - 6641 TDL(数学)

    Problem Description For a positive integer n, let's denote function f(n,m) as the m-th smallest inte ...

  2. 杭电多校 HDU 6641 TDL

    题意:给出一个公式 和公式上的m,k试着求是否有n可以符合上面的公式,若有这输出,没有这输出-1 思路: 1.对于f(n,m)因为与n互质的数很大所以求f(n,m)的时间复杂度并不是很高 2.对于给出 ...

  3. HDUOJ 6641 TDL

    HDUOJ 6641 TDL Problem Description For a positive integer n, let's denote function f(n,m) as the m-t ...

  4. 编程之美中的NIM游戏及异或性质应用

    最近看<编程之美>一书,感叹思维之妙,不过看过之后又在很多数学方面的书里面找到了同样的解法例如<组合数学>.<图论导引>等,之后才知道其实很多书上的算法都是源自数学 ...

  5. C语言异或运算逆运算,hdu 1287(异或运算的逆运算)

    其实这题只要知道: A xor B = C 则 A xor C = B (这个是显然的,(1 ^ 0 =1)-> (1 ^ 1=0) ,(1^1=0)->(1^0=1) 其实异或运算的性质 ...

  6. 异或性质——前缀异或

    昨天遇到一个非常神奇的事情,异或也能维护前缀和? 有两个例题: 例一.子段异或 描述: 给出长度为n的数列,问 异或值为0的子段一共有多少? 思路: 之前有一个考前缀和的,求子段和为0的子段个数,做法 ...

  7. 【HDU - 5968】异或密码(思维,STLmap)

    题干: 晨晨在纸上写了一个长度为N的非负整数序列{aiai}.对于这个序列的一个连续子序列{al,al+1,-,aral,al+1,-,ar}晨晨可以求出其中所有数异或的结果 alxoral+1xor ...

  8. HDU - 5073 Galaxy 思维+方差性质

    题目链接 题意: 一共有N个星球,其星球围绕着其中心旋转,现在你可以去掉最多K个星球,使得其最后的:∑ni=1d2i\sum_{i=1}^n d_i^2最小 其中di表示第i个点到中心的距离.当然随着 ...

  9. Treelabeling 异或性质,位运算,染色法,二分图(2100)

    题意 : 给一个结点1-n的树,E先手,将棋子放在其中一个结点上,S后手,棋子每次移动有三个条件要满足:1.结点相邻:2.结点未被访问:3.

最新文章

  1. python流程图基本元素-Python初学(十一)
  2. 【Laravel】连接 sqlite 数据库 Database [xxx] not exist
  3. OpenCASCADE:OCCT应用框架OCAF之功能服务
  4. 大数据简介,技术体系分类整理
  5. Your local changes would be overwritten by merge. Commit, stash or revert them to proceed.
  6. hive清空外表数据
  7. as5300g2 nas软件功能_铁威马F2-221上手:家用NAS入门首选,还支持两年换新
  8. Python中文编码 - Python零基础入门教程
  9. Java ByteArrayInputStream skip()方法与示例
  10. 2022年学C++好比49年入国军?
  11. 清空 visual studio 查找和替换的历史记录
  12. 198. house robber 题解
  13. 达梦数据库如何连接MySQL_如何创建达梦数据库
  14. 嵌入式Linux应用程序开发
  15. html实现圆形图片
  16. AutoCAD 样条曲线如何结束
  17. 当年意气不肯平,白发如丝叹何益。贪心跳跃游戏
  18. 如何利用缓存服务器来负载均衡
  19. html css主题,HTML+CSS=无限可能——案例详解:我的POI主题作品
  20. Legacy与UEFI

热门文章

  1. 一个治愈 JavaScript 疲劳的学习计划
  2. 让DIV中的DIV居中显示
  3. 森田正马格言录:为所当为
  4. IU酒店登顶9月迈点MBI轻中端品牌第一名!
  5. ✿ISCC2021✿题目以及部分wp
  6. STM32_GPIO
  7. ubuntu安装nginx教程
  8. thinkphp6+webuploader实现大文件(视频)分片上传/本地保存或上传OSS
  9. 将100元分成1元5元和10元的零钱,每种零钱的张数大于0
  10. 电力行业视频监控系统通用架构