蓝桥杯备战中(2/7)
今天集训打江西省赛重现,u1s1,懂得都懂,不懂的死活想不出来,感觉跟大佬的差距还是做题的积累量qwq。在签到题L的时候还梦游,想起了天气之子里面的画面,莫名期待新海诚的新电影,希望能早日上映,必去贡献一番
前言
由于本菜鸡只会几道签到题,所以来分享一下签到过程,大佬勿喷
一、K题 Many Littles Make a Mickle
题目是有n层楼,第i层楼上 i*i 个房间,每个房间m个人求一共能容纳多少个人
怎么做,暴力出奇迹 qwq 无聊做了一个预处理求平方前缀和(然鹅大佬们用幼儿园学过的平方求和公式 就搞定了O(1)) ----离大谱
代码
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll sum[110];
int main()
{
for(int i=1;i<=100;i++)
{
int xiang=i*i;
sum[i]=sum[i-1]+xiang;
}
int t;
cin>>t;
while(t--)
{
int n,m;
scanf("%d%d",&n,&m);
printf("%lld\n",sum[n]*m);
}
}
二、L题 It Rains Again
题目:又tm下雨了,具体题意就是在一个笛卡尔坐标系(Cartesian coordinate system)中有若干个挡雨的屏,坐标从(x1,y1)-->(x2,y2)并保证 x1!=x2 然后雨直直的落下,泛起阵阵涟漪,然后雨女出现,祈愿放晴 “现在开始天晴了!!!” ,然后出现雨屏遮挡住这片天空的雨,之后她还在m记淡定地请了我个汉堡>>>快进到她螺旋升天,这题也就结束啦!问x轴上哪片区域没下过雨。。。直接暴力标记可能会爆内存,所以就用差分f[x1]++和f[x2]--打上标记最后做个前缀,遍历一遍询问没下过雨的区域大小就完了
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int ground[100010];
int main()
{
int n,a,b,c,d,mx=0,ans=0;
cin>>n;
while(n--)
{
scanf("%d%d%d%d",&a,&b,&c,&d);
mx=max(c,mx);
ground[a]++;
ground[c]--;
}
for(int i=1;i<mx;i++)
{
ground[i]=ground[i]+ground[i-1];
}
for(int i=1;i<mx;i++)
{
// cout<<ground[i]<<" ";
if(ground[i])ans++;
}
//cout<<endl;
cout<<ans<<endl;
}
未完待续。。。