向 更好 出发!
-
放假尽量每天更。开学了应该是每周更。
-
如果没有更的话,强烈建议大家催更(雾)
-
如果小橙子咕咕咕了的话可以私信骚扰她。
P.S.不要太过头哦以免被JC时被发现 -
小橙子希望大佬在小橙子遇到问题时帮帮忙qwq如果完全没必要可以直接D吖qwq
2022
2 - 8
- P1426 (红)
基本是爆切。但是有了一个很坑的坑:要先判断,再运算。
结果还是调了 $10$ 分钟。
- P7303 (橙)
也是爆切。好久没有切橙题这么爽过,还是我太弱了嘤嘤嘤
白痴构造题。直接从 $1$ 枚举到 $n - 1$ 按照 $1$ 至 $n - 1$ 的递加数列输出,最后一个输出 $k$ 减掉已经输出的数的总和。
2 - 9
- P8115 (红)
模拟题。虽然是很简单,但是很难。打月赛那天是写出了 $80$ 分,最后一个点 TLE 。
那时候主程序是这样写的(后来发现这样写是错的):
while (1) {
cin >> c, cout << c;
if (c == '}') return 0;
然后我就很疑惑,看了一位大佬的代码,然后算了算我的时间复杂度,感觉我的不会超时啊。。。
加了快读快输,全 WA 。
去问了另一位大佬,发现不能用快读,因为是 ull
类型的,就改了一下,变成最后一个点是 3ms
,但是答案错误。我发现了一个问题,就是如果输入是 {}
,会输出 {0}
(感谢 @Liu_Kevin 指出问题 sto LK orz)
这里还是要放一下最终代码。
#include <bits/stdc++.h>
using namespace std;
#define ull unsigned long long
ull x, l, lx;
char ans[200010], c;
int cnt;
const char ta[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
inline void write(int x) {
char F[200];
int tmp = x > 0 ? x : -x;
if (x < 0) putchar('-') ;
int cnt = 0 ;
while (tmp > 0) {
F[cnt++] = tmp % 10 + '0';
tmp /= 10;
}
while (cnt > 0) putchar(F[--cnt]) ;
}
char* _16(ull a) {
int num[210], i = 0;
cnt = 0;
memset(ans, 0, sizeof(ans));
while (a > 0)
num[++i] = a % 16, a /= 16;
for (; i > 0; --i) ans[cnt++] += ta[num[i]];
return ans;
}
ull _l(ull a) {
ull i = 0;
while (a) a /= 10, ++i;
return i;
}
int main() {
while (1) {
cin >> c, cout << c;
if (c == '}') return 0;
if (scanf("%llu", &x) == 0) continue;
_16(x);
l = _l(x), lx = cnt + 2;
//cout << _16(x).length() << "&" << _l(x) << "&" << _16(x) << "=" << x << " ";
if (l < lx) printf("%llu", x);
else {
printf("0x");
for (int i = 0; i < cnt; ++i)
putchar(ans[i]);
}
}
}
- P1104 (橙)
傻逼题我都能 WA 我真牛逼啊。。。
一开始打算手写冒泡排序,然后想想就算了,写了个 cmp
,然后就运行时错误。。。
狂改了一阵,感觉没问题了,搞死我了,还是 RE ,我就一边改成冒泡一边想,还没写完就突然发现我 string
用 scanf
了。。。改成了 cin
,果然没问题了。。。
提交上去。。。最后两个点 WA 。
我再看代码,发现我最后一个判断错了,总是想着年龄大的排前面,结果输入的顺序就也是 <
了。。。然后才AC。。。
真的是太菜了 /kk
贴一下代码吧。。。
#include <bits/stdc++.h>
using namespace std;
int n;
struct xxs{
int y, m, d, t;
string s;
} a[105];
bool cmp(xxs a, xxs b) {
if (a.y != b.y) return a.y < b.y;
else if (a.m != b.m) return a.m < b.m;
else if (a.d != b.d) return a.d < b.d;
else return a.t > b.t;
}
void inp(void) {
scanf("%d", &n);
for (int i = 1; i <= n; ++i)
cin >> a[i].s, scanf("%d%d%d", &a[i].y, &a[i].m, &a[i].d), a[i].t = i;
}
int main() {
inp();
stable_sort(a + 1, a + n + 1, cmp);
for (int i = 1; i <= n; ++i) cout << a[i].s << endl;
}
- P1271 (橙)
傻逼桶排。数据太大。直接上代码。
#include <bits/stdc++.h>
using namespace std;
int t[1010], x, maxn, n, m;
void inp(void) {
cin >> n >> m;
for (int i = 1; i <= m; ++i)
cin >> x, ++t[x];
}
int main() {
inp();
for (int i = 1; i <= n; ++i)
if (t[i])
for (int j = 1; j <= t[i]; ++j) cout << i << " ";
}