• 河南萌新联赛2024第(四)场:河南理工大学


    B. 小雷的神奇电脑

    题意

    给你n个数输出一个整数,这个整数是在这个数组任意两个数同或的最大值
    同或:
    • 如果两个输入位相同,则输出为1;
    • 如果两个输入位不同,则输出为0。

    思路

    因为同或与异或是相反操作所以我们可以求异或最小值再用2m减异或最小值就是同或的最大值

    代码

    #include 
    #define int long long
    #define endl '\n'
    #define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    using namespace std;
    int a[200100];
    map<int,int>ma;
    signed main() {
    	IOS
    	int T = 1;
    	//cin>>T;
    	while (T--) 
    	{
    		int n,m,f=0,mi=1e18;
            cin>>n>>m;
            int t=pow(2,m)-1;
            for(int i=1;i<=n;i++)
                cin>>a[i];
            sort(a+1,a+1+n);
            for(int i=1;i<n;i++)
            {
                mi=min(mi,a[i]^a[i+1]);
            }
             cout<<t-mi<<endl;   
    	}
    	return 0;
    }
    

    C.岗位分配

    题意

    有众多志愿岗位需要被分配,给你志愿者人数和一个数组数组中的值是每个地方要分配的最小值,求可能的分配情况总数。

    思路

    先把至少要分配几人用总数减去,然后再把剩下的人分配到岗位上有几种分配方法,岗位可以分配0人,然后用排列组合的方法就能求出来,大家可以看下边图片就可以得到公式了
    在这里插入图片描述

    代码

    #include 
    #define int long long
    #define endl '\n'
    #define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    using namespace std;
    const int N=100010, P=998244353;
    int f[N], g[N];
    
    int qpow(int a, int b){
      int res = 1;
      while(b){
        if(b & 1) res=res*a%P;
        a = a*a%P;
        b >>= 1;
      }
      return res;
    }
    void init(){
      f[0] = g[0] = 1;
      for(int i=1; i<N; i++){
        f[i] = f[i-1]*i%P;
        g[i] = g[i-1]*qpow(i,P-2)%P;
      }  
    }
    int getC(int n, int m){
      return f[n]*g[m]%P*g[n-m]%P;
    }
    signed main()
    {
    	IOS
        init();
    	int T=1,a;
    	//cin>>T;
    	while(T--)
    	{
    		int m,n,sum=0;
            cin>>n>>m;
            for(int i=1;i<=n;i++)
            {
                cin>>a;m-=a;
            }
            for(int i=0;i<=m;i++)
                sum=(sum+getC(i+n-1,n-1))%P;
            cout<<sum%P<<endl;
    	}
    	return 0;
    }
    

    D.简单的素数

    题意

    给一个数看是否是素数

    思路

    直接暴力求素数就行了

    代码

    #include 
    #define int long long
    #define endl '\n'
    #define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    using namespace std;
    
    signed main() {
    	IOS
    	int T = 1;
    	cin>>T;
    	while (T--) 
    	{
    		int n,f=0;
    		cin>>n;
    		for(int i=2;i*i<=n;i++)
    		{
    			if(n%i==0)
    			{
    				f=1;
    				break;
    			}
    		}
    		if(f==1)
    		cout<<"No"<<endl;
    		else
    		cout<<"Yes"<<endl;
    	}
    	return 0;
    }
    

    F.小雷的算式

    题意

    给以一个字符串,字符串只有数字和加号,输出从大到小写下自己的算式并算出答案

    思路

    直接模拟一遍就行了,遇见数子存起来,遇见加号求和,再把数字用数组存起来排序输出就行

    代码

    #include 
    #define int long long
    #define endl '\n'
    #define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    using namespace std;
    
    bool cmp(int x, int y) {
    	return x > y;
    }
    
    signed main() {
    	IOS
    	int T = 1;
    	//cin>>T;
    	while (T--) {
    		vector<int>v;
    		int sum = 0, t = 0;
    		string s;
    		cin >> s;
    		for (int i = 0; i < s.size(); i++) {
    			if (s[i] == '+') {
    				sum += t;
    				v.push_back(t);
    				t = 0;
    			} else {
    				t = t * 10 + (s[i] - '0');
    			}
    		}
    		v.push_back(t);
    		sum += t;
    		sort(v.begin(), v.end(), cmp);
    		for (int i = 0; i < v.size(); i++) {
    			if (i == v.size() - 1)
    				cout << v[i] << endl;
    			else
    				cout << v[i] << "+";
    		}
    		cout << sum << endl;
    	}
    	return 0;
    }
    

    H.聪明且狡猾的恶魔

    思路

    这个题我觉得有问题就是在恶魔数量等于3时我觉得应该输出零,但答案并不是

    代码

    #include 
    #define int long long
    #define endl '\n'
    #define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    using namespace std;
    
    signed main() {
    	IOS
    	int T = 1;
    	cin >> T;
    	while (T--) {
    		int n, x;
    		cin >> x >> n;
    		if (n == 1 || n == 2)
    			cout << x << endl;
    		else if ((n - 1) % 2 == 0)
    			cout << max((int)0, x - n / 2) << endl;
    		else
    			cout << max((int)0, x - (n - 1) / 2) << endl;
    	}
    	return 0;
    }
    
  • 相关阅读:
    导入现有项目maven到IDE的过程记录
    Mybatis源码的理解
    C++ STL简介
    G2O学习笔记
    ElasticSearch之Windows中环境安装
    计算机毕业设计node.js+Vue+Element企业员工信息管理系统
    【1024】小结最近三个月
    PCL 点云转深度图像
    肖sir__设计测试用例方法之经验测试方法09_(黑盒测试)
    许战海战略文库|隆基绿能,光伏龙头如何走出战略无人区?
  • 原文地址:https://blog.csdn.net/2302_81590667/article/details/141017095