初赛
校内复习一个月,感觉很没把握……
然后就去考试了(
初赛就在我们学校考的,主场优势/xyx
然后……就没有然后了
TG踩着点交的卷,感觉凉了,然后PJ感觉很简单,1h30min左右就干完了
但是听同校巨佬说,PJ难,TG简单(
然后感觉要退役了,但对了下答案,大概估了下分,TG65,没希望了,PJ94,好像也不难
然后,真实成绩是TG67.5,PJ90.5
TG进了,PJ也进了
但!是!
我们学校老师说,TG的要给PJ的让名额(
然后我的名额就这么被让出去了!就这么被让出去了!
垃圾老师毁我青春
于是就去准备CSP-S了。。。
复赛
经历
首先读完第一题,发现是个大模拟(又想起了猪国杀)
但我猪国杀还没AC呢
然后试着打代码,打了半小时开始怀疑人生
又想了半小时,想到思路了,可以分开做(本来就是嘛)
但可以逐步缩小精度:先400年,再100年,再一年年推,最后一月一月推,剩下日。
然后做了半天,做完发现时间过半(
没看懂T2,先去搞T3,然后打了个暴力,直接顺序模拟就去看T4。
T4看了看,不会做,决定先回去搞T2。
想打个60分的暴力,用二分查找优化,最后再结束前1分钟打完(
自我感觉:100+60+20+0=180(稳稳地二等)
最后发一下代码:
T1:
#include <bits/stdc++.h>
using namespace std;
long long q;
long long thisyear(long long x){
if (x%400==0) return 366;
else if (x%100==0) return 365;
else if (x%4==0) return 366;
else return 365;
}
void calc(long long x){
long long month[13]={
0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
long long nowyear;
long long yearpast=(long long)(x/1461)*4;
if (x<=1721423){
nowyear=yearpast-4713;
x%=1461;
bool f=true;
if (x>=366){
f=false, x-=366, nowyear++;
for (long long i=1; i<=2; i++)
if (x>=365) f=false, x-=365, nowyear++;
}
if (f) month[2]++;
long long i;
for (i=1; x>=month[i]; i++) x-=month[i];
cout << x+1 << ' ' << i << ' ' << -nowyear << ' ' << "BC" << endl;
}
else{
if (x>=2299161){
x-=2299161;
nowyear=(long long)(x/146097)*400;
nowyear+=1582;
x%=146097;
if (x<=78){
long long mt[3]={
17,30,31};
long long i;
for (i=0; x>=mt[i