因为我们可以假设,当震级增加 1 时,它正好乘以 32 ,所以答案是
根据约束条件, A和 B 是整数, , 因此,可以使用 语句计算它。在某些语言中,我们可以用求幂或 函数来找到它
#includeB - typousing namespace std; int main(void) { int a, b; int k = 1; cin >> a >> b; for (int i = b; i < a; i++)k *= 32; cout << k << endl; return 0; }
我们可以在不执行任何操作的情况下检查 S 和 T 是否相同,或者在每个 ,交换第 个和第 个字符时, 和 是否一致.
#includeusing namespace std; int main(){ string S,T; cin >> S >> T; string ans = "No"; if(S == T) ans = "Yes"; for(int i=0; i C - Select Mul 最多有 种分离方式(或2903040/2=1451520,忽略两个分离整数的顺序时),这足够小。
因此,我们可以用暴力对付所有可能的分离方式。
在 c++ 中实现时,有一个有用的函数称为 next_permutation ,它包含在标准库 中。
#includeusing namespace std; int main(){ string N; cin >> N; sort(N.begin(),N.end()); int ans = 0; do{ for(int i=1; i 再稍加观察,我们就会发现接受前导零并不影响结果。
#includeusing namespace std; int main(){ string N; cin >> N; sort(N.begin(),N.end());//排序,next_permutation只能排已经排好序的全排列 int ans = 0; do{ for(int i=1; i 进一步观察,我们可以看到,当达到最大值时,被分离的两个变量在被视为一个数字序列时是单调不递增的。
根据这个属性,我们可以看到应该检查的分离次数是(或 如果忽略两个分开的整数的顺序)。
在实现时,使用位强制暴力也是很简单的。
D - online games让 x1,x2,...,xn 是一个整数排序序列,由某些玩家开始或退出登录的天数组成;也就是说,X使X= Ai 或X= +
然后,对于任意满足 X 的 <=Y<= ,在第Y天登录的人数不变。同样,对于 的任何 或 , 人登录,所以我们不必考虑这些天。因此,可以使用一个计数器和一个记录答案的数组来解决这个问题,计数器和数组初始化为 ,并针对每个 进行更新按照以下步骤进行操作:
· 递增计数器 X 我根据第 X 天开始登录的人数i,并减少退出登录的人数。
· 将 C 用户登录的天数增加 xi+1-xi ,其中 是计数器的当前值。
#includeusing namespace std; #define N 200010 #define rep(i, n) for(int i = 0; i < n; ++i) int main( ) { int n; int a, b; vector >x; int cnt; int ans[N]; rep(i, N)ans[i] = 0; cin >> n; rep(i, n) { cin >> a >> b; x.push_back({ a,1 }); x.push_back({ a + b,-1 }); } sort(x.begin(), x.end()); cnt = 0; rep(i, (x.size())-1) { cnt += x[i].second; ans[cnt] += ((x[i + 1].first) - (x[i].first)); } rep(i, n - 1)cout << ans[i + 1] << " "; cout << ans[n] << endl; return 0; }



