zoukankan      html  css  js  c++  java
  • Codeforces Round #439 div2 869A The Artful Expedient +869B The Eternal Immortality

    869A The Artful Expedient 传送门

    A自己写的T了……然后看了看别人的思路……惊了……

    #include<iostream>
    using namespace std;
    int main()
    {
      cout<<"Karen"<<endl;
      return 0;
    }

    orz 这里要用到异或的法则

    1. a ⊕ a = 0
    2. a ⊕ b = b ⊕ a
    3. a ⊕b ⊕ c = a ⊕ (b ⊕ c) = (a ⊕ b) ⊕ c;
    4. d = a ⊕ b ⊕ c 可以推出 a = d ⊕ b ⊕ c.
    5. a ⊕ b ⊕ a = b.
    6.若x是二进制数0101,y是二进制数1011;
    则x⊕y=1110
    只有在两个比较的位不同时其结果是1,否则结果为0
    “两个输入相同时为0,不同则为1”
     
    在本题中:

    设xi^yj=z;

    那么 xi^z=xi^yj^xi=yj,yj^z=yj^xi^yj=xi,xi与yj求异或值z,如果z在y[]中,那么xi^z=yj;如果z在x[]中,那yj^z=xi;

    也就是一旦存在z属于这2n个数,那么对于xi/yj,必然存在z和yj/z和xi与其为一组(),即答案一定是偶数。

     869B The Eternal Immortality 传送门

    求阶乘b!/a!的最后一位数……如果b-a>=10,(a,b]肯定存在一个10的倍数,最后一位肯定是0,其他的情况就……直接乘

    #include<iostream>
    typedef long long ll;
    using namespace std;
    ll a,b;
    int main()
    {
        ios::sync_with_stdio(false); 
        while(cin>>a>>b)
        {
            int ans=1;
            if(b-a>=10)
             ans=0;
            else 
            for(ll i=a+1;i<=b;i++)
            {
                ans=(i*ans)%10;
            }
            cout<<ans<<endl;
        } 
         return 0;
    }
  • 相关阅读:
    MySQL 8.0+ 时区问题
    SSM框架整合搭建流程
    最大子段和、最大子矩阵和
    棋盘覆盖(分治)
    石子合并问题
    矩阵连乘
    selenium完成滑块验证
    背包问题(2)
    背包问题(1)
    皇后问题
  • 原文地址:https://www.cnblogs.com/Egoist-/p/7635694.html
Copyright © 2011-2022 走看看