因为这场比赛,我愉快地逃掉了晚自修。
T1一开始各种SillyB,忘了40%的最低限制。。。
T2各种想吐槽。。。
明明OJ警告说%lld是不行的我就换成%I64D(上面写这样的)。。。
结果各种WA
改成%lld然后不顾警告提交
AC。。。
此时心里:“¥%……#¥……”
后来想了想不是%I64d吗。。。。d是小写的啊。。。。
BC的尿性。。。。
累觉不爱
T3和T4就都不会做啦。。。
于是只能A两道,于是100+的排名,于是Rating也上1500了(噗
代码:
T1
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <cctype>
#include <deque>
#include <cmath>
#define rep(i, l, r) for(int i=l; i<=r; i++)
#define down(i, l, r) for(int i=l; i>=r; i--)
#define clr(x, c) memset(x, c, sizeof(x))
#define travel(x) for(edge *p=fir[x]; p; p=p->n)
#define maxn 50009
#define maxm 300009
#define inf 0x7fffffff
#define ll long long
using namespace std;
int read()
{
int x=0, f=1; char ch=getchar();
while (!isdigit(ch)) {if (ch=='-') f=-1; ch=getchar();}
while (isdigit(ch)) x=x*10+ch-'0', ch=getchar();
return x*f;
} int main()
{
int t=read(), tt=0, a, b, ans; while (tt++<t)
{
ans=0;
a=read(); b=read();
ans+=max(1000*(250-a)/250-b*50, 1000/10*4);
a=read(); b=read();
ans+=max(1500*(250-a)/250-b*50, 1500/10*4);
a=read(); b=read();
ans+=max(2000*(250-a)/250-b*50, 2000/10*4);
a=read(); b=read();
ans+=max(2500*(250-a)/250-b*50, 2500/10*4);
printf("Case #%d: %d\n", tt, ans);
}
return 0;
}
T2
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <cctype>
#define rep(i, l, r) for(int i=l; i<=r; i++)
#define down(i, l, r) for(int i=l; i>=r; i--)
#define maxn 500009
#define Q 998244353
#define ll long long
using namespace std;
int read()
{
int x=0, f=1; char ch=getchar();
while (!isdigit(ch)) {if (ch=='-') f=-1; ch=getchar();}
while (isdigit(ch)) x=x*10+ch-'0', ch=getchar();
return x*f;
}
int n;
ll k[maxn], ans;
bool cmp(ll x, ll y)
{
if (x==y) return true;
while ((x&1)==(y&1)) x>>=1, y>>=1;
return (x&1)==0;
}
void Cal(ll l, ll r, ll v)
{
if (l>=r || v==1073741824) return;
ll mid=l; while (mid<=r && (k[mid]&v)==0) mid++;
ans=(ans+(mid-l)*(r+1-mid)%Q*v%Q)%Q;
Cal(l, mid-1, v<<1); Cal(mid, r, v<<1);
}
int main()
{
int t=read(), tt=0; while (tt++<t)
{
n=read(); ans=0;
rep(i, 1, n) k[i]=read();
sort(k+1, k+1+n, cmp);
Cal(1, n, 1);
printf("Case #%d: %lld\n", tt, ans*2%Q);
}
return 0;
}
题解: