wwqwq
2024-09-21 13:16:28
保龄寄(确信
别问之前为什么没写,问就是电脑被收了qwq。
原本不想报的,但是老师要求全都要报,只能给CCF捐50了(悲
开考,直接乱选,毕竟去年已经J1=了,进不进无所谓(不想再给CCF捐钱了)。
T3组合数学,先跳过。
格雷码是什么东西???T4蒙A。
又考先中后序遍历啊啊啊不会啊啊啊,T12蒙C。
阅读程序被T22秒了,RE不是编译错误!!!
答案没记,至少错一题。
完善程序第一题第一小题就错啊啊啊我是**。
第二题没看,全蒙的C。
出来对答案,完善程序第二题答案是BBBBC,五错四!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
趋势。。。。。。
估分连八十都没上。。。
没关系当加rp了。
中午喝了咖啡。
好难,心态炸了,全蒙错。
估分42.5。
出分数线,用老人机查的。
J 76,过了。
S 45!!!!!!!!!!!!!!!!!!
就差2.5!!!!!!!!!!!!!!!!
要是不蒙D或不蒙×就过了……
没关系,明年再来!
板子都没背啊啊啊。
T1水题判重即可,T2小模拟,还读错题了。。。
T3发现没有大样例,感觉可能是因为答案有规律。玄学做法。
T4没看。
玩小恐龙,5006分。
估分
没去食堂,怕没开,去吃寿司,花38,贵死。。。
我是用奖励名额的**。
好紧张啊啊啊。
开题看T1直接懵,比去年T1还简单???五分钟做完。
T2乱口胡了一下,感觉可做,直接死磕。
二分,二分,二分,二分。
一通乱搞,过了前四个样例。
去厕所找灵感,好像知道错哪了,赶紧回去写。
又一通乱搞,码风良好,但是可能只有自己读得懂。
过所有样例,但是样例五3.2s,时限2s,有点慌。
想到之前用这台电脑跑
然后没时间看T3和T4了。。。
估分
听说T2没判断ans1为0会20???
测民间,S 200!!!
但是T2好像被hack了,不管了,赌一手CCF数据强度。
听说J估分290,FJ省200名开外了。。。不知道能不能一等,当然不拿也行。
S T2还是没调出来,炸了。
双1=,六级勾。
#include <bits/stdc++.h>
using namespace std;
bool p[10][30];
int qwq1(char c) {
if (c == 'D') return 1;
if (c == 'C') return 2;
if (c == 'H') return 3;
if (c == 'S') return 4;
}
int qwq2(char c) {
if (c == 'A') return 1;
if (c == '2') return 2;
if (c == '3') return 3;
if (c == '4') return 4;
if (c == '5') return 5;
if (c == '6') return 6;
if (c == '7') return 7;
if (c == '8') return 8;
if (c == '9') return 9;
if (c == 'T') return 10;
if (c == 'J') return 11;
if (c == 'Q') return 12;
if (c == 'K') return 13;
}
int main() {
freopen("poker.in", "r", stdin);
freopen("poker.out", "w", stdout);
int n;
cin >> n;
for (int i = 1; i <= n; i++) {
char a, b;
cin >> a >> b;
p[qwq1(a)][qwq2(b)] = 1;
}
int ans = 0;
for (int i = 1; i <= 4; i++) {
for (int j = 1; j <= 13; j++) {
if (p[i][j] == 0) ans++;
}
}
cout << ans << endl;
return 0;
}
#include <bits/stdc++.h>
using namespace std;
int n, m, k;
char Map[1005][1005];
bool zg[1005][1005];
struct node {
int x, y;
};
void init() {
for (int i = 0; i < 1005; i++) for (int j = 0; j < 1005; j++) {
Map[i][j] = 0;
zg[i][j] = 0;
}
return ;
}
node qwq(node a, int zx) {
node res = a;
if (zx == 0) res.y++;
if (zx == 1) res.x++;
if (zx == 2) res.y--;
if (zx == 3) res.x--;
return res;
}
bool ok(node a) {
if (a.x < 1 || a.x > n || a.y < 1 || a.y > m) return 0;
if (Map[a.x][a.y] == 'x') return 0;
return 1;
}
int main() {
freopen("explore.in", "r", stdin);
freopen("explore.out", "w", stdout);
int T;
cin >> T;
while (T--) {
init();
cin >> n >> m >> k;
node xz;
int d;
cin >> xz.x >> xz.y >> d;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
cin >> Map[i][j];
}
}
zg[xz.x][xz.y] = 1;
while (k--) {
node res;
res = qwq(xz, d);
if (ok(res)) {
xz = res;
zg[xz.x][xz.y] = 1;
}
else {
d = (d + 1) % 4;
}
}
int ans = 0;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
ans += zg[i][j];
}
}
cout << ans << endl;
}
return 0;
}
#include <bits/stdc++.h>
using namespace std;
string ans;
int main() {
freopen("sticks.in", "r", stdin);
freopen("sticks.out", "w", stdout);
int T;
cin >> T;
while (T--) {
int n;
cin >> n;
if (n == 1) {
cout << -1 << endl;
continue;
}
if ((n % 7) == 0) {
for (int i = 1; i <= n / 7; i++) cout << 8;
cout << endl;
continue;
}
if (n == 10) {
cout << 22 << endl;
continue;
}
while (n > 14) {
n -= 7;
if (n != 10) ans = ans + "8";
}
if (n == 2) ans = "1" + ans;
if (n == 3) ans = "7" + ans;
if (n == 4) ans = "4" + ans;
if (n == 5) ans = "2" + ans;
if (n == 6) ans = "6" + ans;
if (n == 7) ans = "8" + ans;
if (n == 8) ans = "10" + ans;
if (n == 9) ans = "18" + ans;
if (n == 10) ans = "200" + ans;
if (n == 11) ans = "20" + ans;
if (n == 12) ans = "28" + ans;
if (n == 13) ans = "68" + ans;
if (n == 14) ans = "88" + ans;
cout << ans << endl;
ans = "";
}
return 0;
}
#include <bits/stdc++.h>
using namespace std;
int in;
int cnt[100005];
int main() {
freopen("duel.in", "r", stdin);
freopen("duel.out", "w", stdout);
int n;
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> in;
cnt[in]++;
}
int ans = 0;
for (int i = 1; i <= 100000; i++) {
if (cnt[i] >= ans) ans = cnt[i];
}
cout << ans << endl;
return 0;
}
#include <bits/stdc++.h>
using namespace std;
long long n, m, l, v;
struct node {
long long d, v, a;
}c[100005];
long long p[100005];
long long cs[100005];
struct qj {
long long l, r;
}q[100005], fq[100005];
long long top, top2;
long long Min[100005];
long long b[1000005], qh[1000005];
long long cf[1000005];
void init() {
top = 0;
top2 = 0;
for (long long i = 0; i < 100005; i++) {
cs[i] = 0;
q[i].l = 0;
q[i].r = 0;
fq[i].l = 0;
fq[i].r = 0;
Min[i] = 0;
}
for (long long i = 0; i < 1000005; i++) {
b[i] = 0;
qh[i] = 0;
cf[i] = 0;
}
return ;
}
long long B_S1(long long l, long long r, long long qwq) {//找距qwq点正方向最近的测速仪
if (l == r) return l;
long long mid = (l + r) / 2;
if (p[mid] >= qwq) return B_S1(l, mid, qwq);
else return B_S1(mid + 1, r, qwq);
}
long long B_S2(long long l, long long r, long long qwq) {
if (l == r) return l;
long long mid = (l + r) / 2;
if (c[qwq].v * c[qwq].v + 2 * c[qwq].a * (p[mid] - c[qwq].d) > v * v) return B_S2(l, mid, qwq);
else return B_S2(mid + 1, r, qwq);
}
long long B_S3(long long l, long long r, long long qwq) {
if (l == r) return l;
long long mid = (l + r + 1) / 2;
if ((c[qwq].v * c[qwq].v + 2 * c[qwq].a * (p[mid] - c[qwq].d) <= v * v) || (c[qwq].v * c[qwq].v + 2 * c[qwq].a * (p[mid] - c[qwq].d) < 0)) return B_S3(l, mid - 1, qwq);
else return B_S3(mid, r, qwq);
}
bool cmp(qj a, qj b) {
if (a.l != b.l) return a.l < b.l;
return a.r > b.r;
}
long long B_S4(long long l, long long r, long long qwq) {
if (l == r) return l;
long long mid = (l + r + 1) / 2;
if (cf[mid] <= qwq) return B_S4(mid, r, qwq);
else return B_S4(l, mid - 1, qwq);
}
int main() {
freopen("detect.in", "r", stdin);
freopen("detect.out", "w", stdout);
long long T;
cin >> T;
while (T--) {
init();
scanf("%lld %lld %lld %lld", &n, &m, &l, &v);
for (long long i = 1; i <= n; i++) {
scanf("%lld %lld %lld", &c[i].d, &c[i].v, &c[i].a);
}
for (long long i = 1; i <= m; i++) scanf("%lld", &p[i]);
long long cnt = 0;
for (long long i = 1; i <= n; i++) {
if (p[m] < c[i].d) continue;
if (c[i].a > 0) {
if (c[i].v * c[i].v + 2 * c[i].a * (p[m] - c[i].d) > v * v) {
cs[++cnt] = i;
}
}
if (c[i].a == 0) {
if (c[i].v > v) cs[++cnt] = i;
}
if (c[i].a < 0) {
long long res = B_S1(1, m, c[i].d);
if (c[i].v * c[i].v + 2 * c[i].a * (p[res] - c[i].d) > v * v) {
cs[++cnt] = i;
}
}
}
cout << cnt << ' ';
long long Max = -1;
for (long long awa = 1; awa <= cnt; awa++) {
long long i = cs[awa];
if (c[i].a >= 0) {
long long qd = B_S1(1, m, c[i].d);
long long res = B_S2(qd, m, i);
Max = max(Max, res);
}
else {
long long l = B_S1(1, m, c[i].d);
long long r = B_S3(l, m, i);
q[++top].l = l;
q[top].r = r;
}
}
if (Max != -1) {
q[++top].l = Max;
q[top].r = m;
}
sort(q + 1, q + top + 1, cmp);
Min[top + 1] = 2147483647;
for (long long i = top; i >= 1; i--) Min[i] = min(Min[i + 1], q[i].r);
for (long long i = 1; i <= top; i++) {
if (q[i].r >= Min[i + 1]) continue;
fq[++top2] = q[i];
}
// if (T == 16) for (long long i = 1; i <= top2; i++) cout << "qwq " << fq[i].l << ' ' << fq[i].r << endl;
for (long long i = 1; i <= top2; i++) {
b[fq[i].r]++;
}
qh[0] = 0;
for (long long i = 1; i <= p[m]; i++) {
qh[i] = qh[i - 1] + b[i];
}
long long pl = 0;
for (long long i = 1; i <= top2; i++) {
long long res = B_S4(0, pl, fq[i].l - 1);
//////////////
if (qh[fq[i].r] - (pl - res) - qh[fq[i].l - 1] > 1) {
cf[++pl] = fq[i].r;
// cout << "1111 " << fq[i].l << ' ' << fq[i].r << " 1111" << endl;
}
}
cout << m - (qh[p[m]] - pl) << endl;
}
return 0;
}
/*
1
5 5 15 3
0 3 0
12 4 0
1 1 4
5 5 -2
6 4 -4
2 5 8 9 15
3 3
*/