while (q--) { ll x, y, k, s; cin >> x >> y >> k >> s; v[x][y] += s; for (int i = x - k; i <= x + k; i++) { if (i == x) continue; ll xx = (i + n - 1) % n + 1; v[xx][y] += s; } for (int i = y - k; i <= y + k; i++) { if (i == y) continue; ll yy = (i + m - 1) % m + 1; v[x][yy] += s; } } for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { cout << v[i][j] << ' '; } cout << '\n'; } }
intmain() { ios::sync_with_stdio(0); cin.tie(0); int _ = 1; // cin >> _; while (_--) { solve(); } return0; }
voidsolve() { cin >> n; map <pair<ll, ll>, bool> mp; for (int i = 0; i < n; i++) { int a, b; cin >> a >> b; mp[{a, b}] = true; }
for (int i = 1; i <= 7; i++) { for (int j = 1; j <= 6; j++) { if (!mp[{i, j}]) { e[i].push_back(j); } } }
auto dfs = [&] (ll day, ll course, auto self) -> void { if (day == 7) { ans++; return; }
for (auto x : e[day + 1]) { if (x == course) continue; self(day + 1, x, self); } };
for (auto x : e[1]) { dfs(1, x, dfs); }
cout << ans << '\n'; }
intmain() { ios::sync_with_stdio(0); cin.tie(0); int _ = 1; // cin >> _; while (_--) { solve(); } return0; }
E - 比较A和B的大小
题意:
给定一种新的比较两数大小的方式:整数部分相同,但小数部分按整数来比较大小。例如:0.13 > 0.3, 0.50 > 0.5。 给定两个数,若新的方式与数学方式的比大小结果相同,输出”ni shi dui de” 否则,输出”ni cuo le, ying gai shi ‘正确答案’”。 “正确答案”为:<, >, =。
int found2 = 0;//normal compare for (int i = 0; i < min(ss1.size(), ss2.size()); i++) { if (ss1[i] < ss2[i]) { found2 = 1; break; }elseif (ss1[i] > ss2[i]) { found2 = 2; break; } }
if (found2 == 0) { if (ss1.size() < ss2.size()) { bool foundd = false; for (int i = ss1.size(); i < ss2.size(); i++) { if (ss2[i] != '0') { foundd = true; } } if (foundd) { found2 = 1; } }elseif (ss1.size() > ss2.size()) { bool foundd = false; for (int i = ss2.size(); i < ss1.size(); i++) { if (ss1[i] != '0') { foundd = true; } } if (foundd) { found2 = 2; } } }
int found3 = 0;//require compare string t1; int index = 0;//remove 0 from front while (index < ss1.size()) { if (ss1[index] != '0') { break; } index++; } t1 = ss1.substr(index, ss1.size() - index);
string t2; index = 0; while (index < ss2.size()) { if (ss2[index] != '0') { break; } index++; } t2 = ss2.substr(index, ss2.size() - index);
if (t1.size() < t2.size()) { found3 = 1; }elseif (t1.size() > t2.size()) { found3 = 2; }else { for (int i = 0; i < t1.size(); i++) { if (t1[i] < t2[i]) { found3 = 1; break; }elseif (t1[i] > t2[i]) { found3 = 2; break; } } }
if (found2 == found3) { cout << "ni shi dui de" << '\n'; }elseif (found2 == 0 && found3 == 1) { cout << "ni cuo le, ying gai shi <" << '\n'; }elseif (found2 == 0 && found3 == 2) { cout << "ni cuo le, ying gai shi >" << '\n'; }elseif (found2 == 1 && found3 == 0) { cout << "ni cuo le, ying gai shi =" << '\n'; }elseif (found2 == 1 && found3 == 2) { cout << "ni cuo le, ying gai shi >" << '\n'; }elseif (found2 == 2 && found3 == 0) { cout << "ni cuo le, ying gai shi =" << '\n'; }elseif (found2 == 2 && found3 == 1) { cout << "ni cuo le, ying gai shi <" << '\n'; } } intmain() { ios::sync_with_stdio(0); cin.tie(0); int _ = 1; //cin >> _; while (_--) { solve(); } return0; }
#include<bits/stdc++.h> usingnamespace std; using ll = longlong; using ld = longdouble; using pi = pair<ll, ll>;
#define fi first #define se second
constint MAXN = 6e7; constdouble eps = 1e-5; const ll mod = 998244353; ll n, k, p;
voidsolve() { cin >> n >> k >> p; vector <vector <ll> > a(p); for (int i = 0; i < n; i++) { ll t; cin >> t; a[t % p].push_back(t); }
bool found = false; ll ans = LLONG_MAX; for (int i = 0; i < p; i++) { if (a[i].size() < k) continue; else found = true; sort(a[i].begin(), a[i].end());