1、不限制次数的输入数据
vector<int> nums;
int num;
while (cin >> num) {
nums.push_back(num);
if (cin.get() == '\n') break;
}
2、取模模版
template<int kcz>
struct ModInt {
#define T (*this)
int x;
ModInt() : x(0) {}
ModInt(int y) : x(y >= 0 ? y : y + kcz) {}
ModInt(LL y) : x(y >= 0 ? y % kcz : (kcz - (-y) % kcz) % kcz) {}
inline int inc(const int &v) {
return v >= kcz ? v - kcz : v;
}
inline int dec(const int &v) {
return v < 0 ? v + kcz : v;
}
inline ModInt &operator+=(const ModInt &p) {
x = inc(x + p.x);
return T;
}
inline ModInt &operator-=(const ModInt &p) {
x = dec(x - p.x);
return T;
}
inline ModInt &operator*=(const ModInt &p) {
x = (int) ((LL) x * p.x % kcz);
return T;
}
inline ModInt inverse() const {
int a = x, b = kcz, u = 1, v = 0, t;
while (b > 0)t = a / b, std::swap(a -= t * b, b), std::swap(u -= t * v, v);
return u;
}
inline ModInt &operator/=(const ModInt &p) {
T *= p.inverse();
return T;
}
inline ModInt operator-() const {
return -x;
}
inline friend ModInt operator+(const ModInt &lhs, const ModInt &rhs) {
return ModInt(lhs) += rhs;
}
inline friend ModInt operator-(const ModInt &lhs, const ModInt &rhs) {
return ModInt(lhs) -= rhs;
}
inline friend ModInt operator*(const ModInt &lhs, const ModInt &rhs) {
return ModInt(lhs) *= rhs;
}
inline friend ModInt operator/(const ModInt &lhs, const ModInt &rhs) {
return ModInt(lhs) /= rhs;
}
inline bool operator==(const ModInt &p) const {
return x == p.x;
}
inline bool operator!=(const ModInt &p) const {
return x != p.x;
}
inline ModInt qpow(LL n) const {
ModInt ret(1), mul(x);
while (n > 0) {
if (n & 1)ret *= mul;
mul *= mul, n >>= 1;
}
return ret;
}
inline friend std::ostream &operator<<(std::ostream &os, const ModInt &p) {
return os << p.x;
}
inline friend std::istream &operator>>(std::istream &is, ModInt &a) {
LL t;
is >> t, a = ModInt<kcz>(t);
return is;
}
static int get_mod() {
return kcz;
}
inline bool operator<(const ModInt &A) const {
return x < A.x;
}
inline bool operator>(const ModInt &A) const {
return x > A.x;
}
#undef T
};
const int kcz = 1'000'000'007;
using Z = ModInt<kcz>;
3、进制转换
#include<bits/stdc++.h>
using namespace std;
int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
int n;cin>>n;
while(n--){
unsigned int a,b;cin>>a>>b;
while(!(a&1))a>>1;
while(!(b&1))b>>1;
if(a<b){
cout<<"No\n";return 0;
}
vector<int> A,B;
while(a>0){
A.push_back(a&1);a=>>1;
}
while(b>0){
B.push_back(b&1);b=>>1;
}
int n = (int) A.size(), m = (int) B.size();
for (int i = 0; i + m - 1 < n; i++) {
int fl = 0;
for (int j = 0; j < m; j++) {
if (A[i + j] != B[j]) {
fl = 1;
break;
}
}
}
if (!fl) {
cout << "Yes\n";
return 0;
}
cout << "No\n";
}
return 0;
}