zoukankan      html  css  js  c++  java
  • Codeforces Round #613 (Div. 2)

    D. Dr. Evil Underscores

    题意

    寻找一个x,使得他与数组中数的异或的最大值最小

    分析

    分治位运算

    代码

    
    inline int read()
    {
        char c=getchar();int x=0,f=1;
        while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();}
        while(c>='0'&&c<='9'){x=x*10+c-'0';c=getchar();}
        return x*f;
    }
    vector<int >v;
    int dfs(int i,vector<int > &v)
    {
    	vector<int>v0,v1;
    	if(i<0)return 0;
    	for(auto j:v)
    	{
    		if((j>>i)&1)v1.push_back(j);//如果这一位是1 
    		else v0.push_back(j);//如果这一位是0 
    	}
    	if(v0.size()==0)return dfs(i-1,v1);//全是1
    	if(v1.size()==0)return dfs(i-1,v0);//全是0
    	return  min(dfs(i-1,v0),dfs(i-1,v1))+(1<<i);
    }
    main(void)
    {
    	int n=read();
    	_1for(i,n)
    	{
    		ll t=read();
    		v.push_back(t);
    	}
    	cout<<dfs(30,v)<<endl;
    }
    

    C

    题意

    给你一个整数X,求出最小公倍数是X的两个数a,b,并且要求a,b的二者较大值尽可能小。

    思路

    已知:最大公约数GCD(a,b)=p和最小公倍数LCM(a,b)=q的关系是:q=a*b/p ,即 LCM(a,b)=a * b / GCD(a,b) ——①;

    易知当 a∗b=X 时 max(a,b) 最小 ,且① 即 当GCD(a,b)=1 所以直接枚举答案判断。

    代码

    #include<bits/stdc++.h>
    #define int long long
    #define _0for(i, a) for(int i = 0; i < (a); ++i)
    #define _1for(i, a) for(int i = 1; i <=(a); ++i)
    using namespace std;
    int gcd(int p,int q)
    {
    	if(p==0)return q;
    	else
    	{
    		return gcd(q%p,p);
    	}
    }
    main(void)
    {
    
    	int a,b,x;
    	cin>>x;
    	for(int i=1;i*i<=x;i++)
    	{
    		if(x%i==0)
    		{
    			if(gcd(i,x/i)==1)
    			{
    				a=i;
    				b=x/i;
    			}
    		} 
    	}
    	printf("%lld %lld
    ",a,b);
    }
    
    
    
    
  • 相关阅读:
    【Codechef】Chef and Bike(二维多项式插值)
    USACO 完结的一些感想
    USACO 6.5 Checker Challenge
    USACO 6.5 The Clocks
    USACO 6.5 Betsy's Tour (插头dp)
    USACO 6.5 Closed Fences
    USACO 6.4 Electric Fences
    USACO 6.5 All Latin Squares
    USACO 6.4 The Primes
    USACO 6.4 Wisconsin Squares
  • 原文地址:https://www.cnblogs.com/wangqianyv/p/13280717.html
Copyright © 2011-2022 走看看