Morning
今天很懵逼,7:00才起床,起床铃都没有听见,差点迟到,还好昨天买了早餐,嘿嘿嘿。
今天比赛预计分数:50+50+0+0=100分
实际分数:33.3+25+0+12.5=70.8分
妈呀,今天蜜汁水分技巧啊,
水分打法好。
今天,一个不平凡的日子
今天的人们,又回忆起了,那被水分打法支配的恐惧
今天比赛一群水分(蜜汁最高水了120.5分),什么鬼…
Afternoon
听
课
+
改
题
听课+改题
听课+改题
虽然听课没听太懂,但后面看了题解后,还是可以理解的
AC题解
T1 GCD与LCM
T2 幻灯片
T3 导弹
下面献上自己的比赛代码
T2:模拟水50分,但比赛后莫名歇菜
#include<cstdio>
#include<iostream>
using namespace std;
int n,x1,x2,y1,y2,color;
int a[5005][5005],sum,dx[2],dy[2];
bool b[100005];
int main()
{
freopen("b.in" , "r" , stdin);
freopen("b.out" , "w" , stdout);
dx[0] = dx[1] = dy[0] = dy[1] = 1;
scanf("%d" , &n);
for (int i = 1; i <= n; ++i)
{
scanf("%d%d%d%d%d" , &x1 , &y1 , &x2 , &y2 , &color);
for (int j = x1; j <= x2; ++j)
for (int k = y1; k <= y2; ++k)
a[j][k] += color;
dx[0] = min(dx[0],x1); dx[1] = max(dx[1],x2);
dy[0] = min(dy[0],y1); dy[1] = max(dy[1],y2);
}
for (int i=dx[0]; i<=dx[1]; ++i)
for (int j=dy[0]; j<=dy[1]; ++j)
{
if (!b[a[i][j]] && a[i][j] != 0) {
b[a[i][j]] = 1;
sum++;
}
}
printf("%d" , sum);
fclose(stdin);
fclose(stdout);
}
T3没写,但是有很多人水了25分…
T4:蜜汁样例输出(输出011还可以拿到50分!!!)
#include<cstdio>
#include<iostream>
using namespace std;
int main()
{
freopen("d.in" , "r" , stdin);
freopen("d.out" , "w" , stdout);
printf("0\n2\n2 4");
fclose(stdin);
fclose(stdout);
}
然后改了一小个点,T2的了本应有的50分
#include<cstdio>
#include<iostream>
using namespace std;
int n,x1,x2,y1,y2,color;
int a[5005][5005],sum,dx[2],dy[2];
bool b[100005];
int main()
{
freopen("b.in" , "r" , stdin);
freopen("b.out" , "w" , stdout);
dx[0]=dy[0]=1000000000;
scanf("%d" , &n);
for (int i = 1; i <= n; ++i)
{
scanf("%d%d%d%d%d" , &x1 , &y1 , &x2 , &y2 , &color);
for (int j = x1; j < x2; ++j)
for (int k = y1; k < y2; ++k) //<=改成<
a[j][k] += color;
dx[0] = min(dx[0] , x1); dx[1] = max(dx[1] , x2);
dy[0] = min(dy[0] , y1); dy[1] = max(dy[1] , y2);
}
for (int i=dx[0]; i<=dx[1]; ++i)
for (int j=dy[0]; j<=dy[1]; ++j)
{
if (!b[a[i][j]] && a[i][j] != 0) {
b[a[i][j]] = 1;
sum++;
}
}
printf("%d" , sum);
fclose(stdin);
fclose(stdout);
}