2 solutions

  • 0
    @ 2024-2-6 19:31:03
    #include<cstdio>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    #define N 500017
    #define ll long long
    using namespace std;
    int n;ll a[N];
    int main()
    {
    	cin >> n;
    	for(int i = 1;i <= n;i += 1)cin >> a[i];
    	sort(a+1,a+n+1);
    	ll minn = a[1]|a[2];
    	for(int i = 1;i < n;i += 1)minn = min(minn,a[i]^a[i+1]);
    	cout << minn << endl;
    	return 0;
    }
    
    
    • 0
      @ 2024-2-6 19:30:28

      Solution

      aia_i进行从小到大排序

      结论:

      全局最小异或对:min(相邻两个异或)

      全局最小或对:a[1]|a[2]

      • 1

      Information

      ID
      307
      Time
      1000ms
      Memory
      256MiB
      Difficulty
      3
      Tags
      (None)
      # Submissions
      48
      Accepted
      27
      Uploaded By