
7.15
div2 1189 A、B、C
C:前缀和。a1,a2
(a1 + a2) % 10
(a + b) % 10 = (a % 10 + b % 10) % 10
rest = sum % 10(余数),sum(和) = 10ans(糖果数) + rest
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
typedef long long ll; using namespace std;
int n,s[100005],q,sum[100005]; typedef struct { int l,r; }question;
question qu[100005];
int main() { freopen("in.txt","r",stdin); cin >> n; for(int i = 0;i < n;i ++) { cin >> s[i]; } for(int i = 1;i < n;i ++) { s[i] = s[i] + s[i - 1]; } cin >> q; for(int i = 0;i < q;i ++) { cin >> qu[i].l >> qu[i].r; } for(int i = 0;i < q;i ++) { cout << (s[qu[i].r - 1] - s[qu[i].l - 2] ) / 10 << endl; } return 0; }
|
div2 1191 A、B
没啥好说的。。。
7.16
div2 1194 A、B、C
B卡了神奇的bug。。。
C:1.s的种类比t多 2.t的种类比s+p多 3.种类一样个数不够 4.顺序不匹配
7.17
div2 1187 A、B、C
B:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
typedef long long ll; using namespace std;
char s[500005],t[500005]; int m,n,cnt[30][500005];
int main() { std::ios::sync_with_stdio(false); freopen("in.txt","r",stdin); freopen("out.txt","w",stdout); cin >> n; cin >> s; for(int i = 0;i < n;i ++) { cnt[s[i] - 'a'][0] ++; cnt[s[i] - 'a'][cnt[s[i] - 'a'][0]] = i + 1; } cin >> m; while (m --) { int cntt[30] = {0},ans = -1; cin >> t; int len = strlen(t); for(int i = 0;i < len;i ++) { cntt[t[i] - 'a'] ++; } for(int i = 0;i < 26;i ++) { if(cntt[i] == 0) continue; ans = max(ans,cnt[i][cntt[i]]); } cout << ans << endl; } return 0; }
|
C:不是单调不减 != 单调减
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
|
typedef long long ll; using namespace std;
int n,m; int a[100000];
typedef struct query { int li,ri,ti; }query;
query t[100000];
int main() { std::ios::sync_with_stdio(false); freopen("in.txt","r",stdin); cin >> n >> m; for(int i = 0;i < m;i ++) { cin >> t[i].ti >> t[i].li >> t[i].ri; if(t[i].ti == 1) { for(int j = t[i].li;j < t[i].ri;j ++) { a[j] = 1; } } } for(int i = 0;i < m;i ++) { int flag = 0; if(t[i].ti == 0) { for(int j = t[i].li;j < t[i].ri;j ++) { if(a[j] == 0) { flag = 1; break; } } if(flag == 0) { cout << "NO" << endl; return 0; } } } cout << "YES" << endl; int ans = n + 1; for(int i=1;i<=n;i++) printf("%d%c",a[i-1]?ans:--ans,i==n?'n':' '); return 0; }
|
近期评论