zoukankan      html  css  js  c++  java
  • 有趣的东西

      1 template<int mod>
      2 struct modular
      3 {
      4     int data;
      5     inline modular<mod> operator+(modular<mod> b)
      6     {
      7         modular<mod> res;
      8         res.data=data+b.data;
      9         if(res.data>=mod)
     10             res.data-=mod;
     11         return res;
     12     }
     13     inline modular<mod> operator-(modular<mod> b)
     14     {
     15         modular<mod> res;
     16         res.data=data-b.data;
     17         if(res.data<0)
     18             res.data+=mod;
     19         return res;
     20     }
     21     inline modular<mod> operator*(modular<mod> b)
     22     {
     23         modular<mod> res;
     24         res.data=(long long)data*b.data%mod;
     25         return res;
     26     }
     27     inline void operator+=(modular<mod> b)
     28     {
     29         data+=b.data;
     30         if(data>=mod)
     31             data-=mod;
     32         return;
     33     }
     34     inline void operator-=(modular<mod> b)
     35     {
     36         data-=b.data;
     37         if(data<0)
     38             data+=mod;
     39         return;
     40     }
     41     inline void operator*=(modular<mod> b)
     42     {
     43         data=(long long)data*b.data%mod;
     44         return;
     45     }
     46     inline bool operator==(modular<mod> b) const
     47     {
     48         return data==b.data;
     49     }
     50     inline bool operator!=(modular<mod> b) const
     51     {
     52         return data!=b.data;
     53     }
     54     inline bool operator<(modular<mod> b) const
     55     {
     56         return data<b.data;
     57         }
     58     inline modular<mod> operator+(int b)
     59     {
     60         modular<mod> res;
     61         res.data=data+b;
     62         if(res.data>=mod)
     63             res.data-=mod;
     64         return res;
     65     }
     66     inline modular<mod> operator-(int b)
     67     {
     68         modular<mod> res;
     69         res.data=data-b;
     70         if(res.data<0)
     71             res.data+=mod;
     72         return res;
     73     }
     74     inline modular<mod> operator*(int b)
     75     {
     76         modular<mod> res;
     77         res.data=(long long)data*b%mod;
     78         return res;
     79     }
     80     inline void operator+=(int b)
     81     {
     82         data+=b;
     83         if(data>=mod)
     84             data-=mod;
     85         return;
     86     }
     87     inline void operator-=(int b)
     88     {
     89         data-=b;
     90         if(data<0)
     91             data+=mod;
     92         return;
     93     }
     94     inline void operator*=(int b)
     95     {
     96         data=(long long)data*b%mod;
     97         return;
     98     }
     99     inline bool operator==(int b) const
    100     {
    101         return data==b;
    102     }
    103     inline bool operator!=(int b) const
    104     {
    105         return data!=b;
    106     }
    107     inline void operator=(int b)
    108     {
    109         data=b;
    110         return;
    111     }
    112 };

    -fno-elide-constructors

  • 相关阅读:
    装饰器模式
    mockups 安装
    单例设计模式
    css优先级问题
    GPU的nvadiasmi解析
    conda配置镜像并安装gpu版本pytorch和tensorflow2
    索引的优化
    [转]必须掌握的八个【cmd 命令行】
    BDE莫名的不自动COMMIT问题
    窗体控件笔记
  • 原文地址:https://www.cnblogs.com/hehe54321/p/8521964.html
Copyright © 2011-2022 走看看