10 条题解

  • 1
    @ 2025-11-6 21:37:40

    包AC

    #include<bits/stdc++.h>
    using namespace std;
    int x,n,k;
    int main(){
    	cin >> n;
    	for(int i=1; i<n; i++){
    		cin >> x;
    		k=k^x^i;
    	}
    	k^=n;
    	cout << k;
    	return 0;
    }
    
    • 0
      @ 2025-2-4 22:11:17

      我倒看不出来这题跟位运算有半毛钱关系

      #include<bits/stdc++.h>
      using namespace std;
      const int N=1e5+5,INF=0x3f3f3f3f;
      int n,sum,a;
      int main()
      {
      	cin>>n;
      	for(int i=1;i<=n-1;i++){
      		cin>>a;
      		sum+=a;
      	}
      	cout<<(1+n)*n/2-sum;
      	return 0;
      }
      
      • 0
        @ 2024-5-19 14:08:20

        这道题可以用两种方式解答:

        1. 等差数列求和公式
        #include <iostream>
        using namespace std;
        int s = 0, n, s2;
        // s2表示1~n求和,s表示输入数据求和
        int main(){
        	cin >> n;
        	for(int i = 1;i < n;i++){
        		int tmp;
        		cin >> tmp;
        		s += tmp;
        	}
        // 等差数列求和公式
        	s2 = (1 + n)*((n-1)/1+1)/2;
        	cout << s2 - s; 
        	return 0;
        }
        
        1. 位运算异或:
        #include <iostream>
        #include <string.h>
        #include <cstdio>
        #include <algorithm>
        #include <string>
        #include <iomanip>
        #include <math.h>
        #include <map>
        #include <set>
        #include <cstdlib>
        #include <vector>
        
        typedef long long LL;
        typedef unsigned long long ULL;
        const int N = 1e5 + 10;
        const int INF = 0x3f3f3f3f;
        using namespace std;
        int n, tmp, ans;
        int main()
        {
        	scanf("%d", &n);
        // 输入数据同时尽
        	for(int i = 1; i < n; i++)
        	{
        		scanf("%d", &tmp);
        		ans ^= tmp;
        		ans ^= i;
        	}
        	ans ^= n;
        	printf("%d", ans);
        	return 0;
        }
        
        • 0
          @ 2023-6-10 19:52:06

          这道题目可以使用高斯求和公式来解决,即将n个数的和减去n(n+1)/2,剩下的就是缺失的数字。具体思路如下:

          1. 读入n和n-1个卡片编号。
          2. 对n个数进行求和,保存在sum中。
          3. 使用高斯求和公式计算1到n的和,保存在total中。
          4. 缺失的数字就是total-sum,输出即可。
          #include <iostream>
          using namespace std;
          int main() {
              int n, sum = 0;
              cin >> n;
              for (int i = 1; i < n; i++) {
                  int card;
                  cin >> card;
                  sum += card; // 对n-1个卡片进行求和
              }
              int total = n * (n + 1) / 2; // 计算1到n的和
              cout << total - sum << endl; // 缺失的数字就是total-sum
              return 0;
          }
          
        • -1
          @ 2024-12-10 17:01:17
          #include<iostream>
          #include<cstring>
          using namespace std;
          int a[1314520],ans,x;
          unsigned n;
          int main(){
          	cin >> n;
          	for (int i=1; i<=n-1; i++){
          		cin >> x;
          		ans^= x;
          		ans^=i;
          	}
          	ans^=n;
          	cout << ans;
          	return 0;
          }
          

          晚风拂过脸颊~

          • -1
            @ 2024-12-10 16:54:09
            #include<bits/stdc++.h>
            using namespace std;
            int a[1000000],ans,x;
            unsigned n;
            int main(){
            	cin >> n;
            	for (int i=1; i<=n-1; i++){
            		cin >> x;
            		ans^= x;
            		ans^=i;
            	}
            	ans^=n;
            	cout << ans;
            	return 0;
            }
            小鸟
            
            • -2
              @ 2023-5-30 16:50:56
              using namespace std;
              int a[1000000],ans,x;
              unsigned n;
              int main(){
              	cin >> n;
              	for (int i=1; i<=n-1; i++){
              		cin >> x;
              		ans^= x;
              		ans^=i;
              	}
              	ans^=n;
              	cout << ans;
              	return 0;
              }
              
              • -3
                @ 2023-12-23 20:32:05

                #include using namespace std; const int N=1e3+10; const int INF=0x3f3f3f3f; unsigned int n,m,a; int main(){ cin>>n; for(int i=1;i<n;i++) { cin>>m; a^=m^i; } a^=n; cout<<a; }

                • -3
                  @ 2023-12-5 20:42:56

                  #include<bits/stdc++.h> using namespace std; int ans,n,x; int main(){ cin>>n; for(int i = 1; i < n; i ++ ) { cin>>x; ans ^= x; ans ^= i; } ans ^= n; cout<<ans; return 0; }

                  • -3
                    @ 2023-5-6 20:37:39

                    煎蛋

                    #include<iostream>
                    using namespace std;
                    int ans,n,x; 
                    int main(){
                    	cin>>n;
                    	for(int i = 1; i < n; i ++ ){
                    		cin>>x;
                    		ans ^= x;
                    		ans ^= i;
                    	}
                    	ans ^= n;
                    	cout<<ans;
                    }
                    
                    • 1

                    信息

                    ID
                    2953
                    时间
                    1000ms
                    内存
                    256MiB
                    难度
                    5
                    标签
                    递交数
                    779
                    已通过
                    288
                    上传者