admin管理员组文章数量:1621657
今天做的是模拟10题 马上要给同学讲解了 所以做得比较透。
第一题:
LUOGU1003题目描述为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯。一共有 n 张地毯,编号从 1 到n 。现在将这些地毯按照编号从小到大的顺序平行于坐标轴先后铺设,后铺的地毯覆盖在前面已经铺好的地毯之上。地毯铺设完成后,组织者想知道覆盖地面某个点的最上面的那张地毯的编号。注意:在矩形地毯边界和四个顶点上的点也算被地毯覆盖。
这道题也有些细节 因为这个矩形可以很大 (两三万) 所以直接开数组肯定是会炸的。所以要用到离散化(虽然我也不明白什么事离散化 黄涵大佬和我说的 但和我的思路是一样的) 就是读到那个需要的坐标后 对每个地毯进行判断是否覆盖该点AC代码如下:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,x[10010],y[10010],x1[10010],y1[10010];
int a,b;
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d%d%d%d",&x[i],&y[i],&x1[i],&y1[i]);
scanf("%d%d",&a,&b);
int s=0;
for(int i=1;i<=n;i++)
if((a>=x[i])&&(a<=x[i]+x1[i])&&(b>=y[i])&&(b<=y[i]+y1[i]))
s=i;
if(s==0) s--;
printf("%d",s);
return 0;
}
暴力题比较简单。
第二题:
LUOGU1089 题目描述津津的零花钱一直都是自己管理。每个月的月初妈妈给津津300元钱,津津会预算这个月的花销,并且总能做到实际花销和预算的相同。为了让津津学习如何储蓄,妈妈提出,津津可以随时把整百的钱存在她那里,到了年末她会加上20%还给津津。因此津津制定了一个储蓄计划:每个月的月初,在得到妈妈给的零花钱后,如果她预计到这个月的月末手中还会有多于100元或恰好100元,她就会把整百的钱存在妈妈那里,剩余的钱留在自己手中。例如11月初津津手中还有83元,妈妈给了津津300元。津津预计11月的花销是180元,那么她就会在妈妈那里存200元,自己留下183元。到了11月月末,津津手中会剩下3元钱。津津发现这个储蓄计划的主要风险是,存在妈妈那里的钱在年末之前不能取出。有可能在某个月的月初,津津手中的钱加上这个月妈妈给的钱,不够这个月的原定预算。如果出现这种情况,津津将不得不在这个月省吃俭用,压缩预算。现在请你根据2004年1月到12月每个月津津的预算,判断会不会出现这种情况。如果不会,计算到2004年年末,妈妈将津津平常存的钱加上20%还给津津之后,津津手中会有多少钱。
这题就非常简单了 暴力过 AC代码如下:#include<bits/stdc++.h>
using namespace std;
int main ()
{
int money=0,n,i=0,save=0;
bool flag=true;
while((i<12)&&(flag))
{
i++;
scanf("%d",&n);
money+=300;
money-=n;
if(money>=100) {n=money/100;money-=n*100;save=save+n*100;}
else if(money<0) flag=false;
}
if (flag) printf("%d",save*120/100+money);
else printf("-%d",i);
return 0;
}
第三题:
LUOGU1328
题目描述石头剪刀布是常见的猜拳游戏:石头胜剪刀,剪刀胜布,布胜石头。如果两个人出拳一样,则不分胜负。在《生活大爆炸》第二季第8 集中出现了一种石头剪刀布的升级版游戏。升级版游戏在传统的石头剪刀布游戏的基础上,增加了两个新手势:斯波克:《星际迷航》主角之一。蜥蜴人:《星际迷航》中的反面角色。这五种手势的胜负关系如表一所示,表中列出的是甲对乙的游戏结果。
现在,小A 和小B 尝试玩这种升级版的猜拳游戏。已知他们的出拳都是有周期性规律的,但周期长度不一定相等。例如:如果小 A以“石头 - 布- 石头- 剪刀- 蜥蜴人- 斯波克”长度为6 的周期出拳,那么他的出拳序列就是“石头- 布- 石头- 剪刀- 蜥蜴人- 斯波克- 石头- 布- 石头- 剪刀- 蜥蜴人- 斯波克- ……”,而如果小B 以“剪刀- 石头- 布- 斯波克- 蜥蜴人”长度为5 的周期出拳,那么他出拳的序列就是“剪刀- 石头- 布- 斯波克- 蜥蜴人- 剪刀- 石头- 布-斯波克- 蜥蜴人- ……”已知小A 和小B 一共进行N 次猜拳。每一次赢的人得1 分,输的得0 分;平局两人都得0 分。现请你统计N 次猜拳结束之后两人的得分。
也是暴力 代码如下:
#include<bits/stdc++.h>
using namespace std;
int main ()
{
int p,q,n,a,b,A[300],B[300];
int awin=0,bwin=0;
scanf("%d%d%d",&n,&a,&b);
for(int i=1;i<=a;i++)
scanf("%d",&A[i]);
for(int i=1;i<=b;i++)
scanf("%d",&B[i]);
p=0;q=0;
for(int i=1;i<=n;i++)
{
p=p%a+1;
q=q%b+1;
switch(A[p])
{
case 0:switch(B[q]) //a出剪刀
{
case 1:bwin++;break;
case 2:awin++;break;
case 3:awin++;break;
case 4:bwin++;break;
};break;
case 1:switch(B[q]) //a出石头
{
case 0:awin++;break;
case 2:bwin++;break;
case 3:awin++;break;
case 4:bwin++;break;
};break;
case 2:switch(B[q]) //a出布
{
case 0:bwin++;break;
case 1:awin++;break;
case 3:bwin++;break;
case 4:awin++;break;
};break;
case 3:switch(B[q]) //a出蜥蜴人
{
case 0:bwin++;break;
case 1:bwin++;break;
case 2:awin++;break;
case 4:awin++;break;
};break;
case 4:switch(B[q]) //a出斯波克
{
case 0:awin++;break;
case 1:awin++;break;
case 2:bwin++;break;
case 3:bwin++;break;
};break;
}
}
printf("%d %d",awin,bwin);
return 0;
}
溜了
本文标签:
版权声明:本文标题:8.31 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dianzi/1728850803a1176653.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论