赛车在哪里

1012 篇文章 43 订阅

http://oj.acm.zstu.edu.cn/JudgeOnline/problem.php?id=4391

题解:快速幂+数学

#include<iostream>
#include<cstdio>
#define LL long long
using namespace std;
LL a,b,c;
LL qpow(LL x,LL k)
{
    LL tem=1LL;
    while(k)
    {
        if(k&1)
            tem=(tem*x)%c;
        x=(x*x)%c;
        k>>=1;
    }
    return tem;
}
int main()
{
    int t;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%lld%lld%lld",&a,&b,&c);
        LL ans=(((a+5)*((qpow(2,b)%c-1)))%c-(5*b)%c)%c;
        printf("%lld\n",(ans+c)%c);
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
您好,要在赛车游戏中随机生成障碍物或道具,可以按照以下步骤进行: 1. 首先,您需要在游戏中定义障碍物或道具的数据结构,例如: ```c++ struct Obstacle { int x; // 障碍物左上角的x坐标 int y; // 障碍物左上角的y坐标 int width; // 障碍物的宽度 int height; // 障碍物的高度 int type; // 障碍物的类型,例如1表示路障,2表示加速道具等等 }; ``` 2. 在游戏初始化时,可以随机生成一些障碍物或道具,并将它们存储到一个容器中,例如: ```c++ vector<Obstacle> obstacles; for (int i = 0; i < NUM_OBSTACLES; i++) { Obstacle obstacle; obstacle.x = rand() % (WINDOW_WIDTH - OBSTACLE_WIDTH); // 随机生成左上角的x坐标 obstacle.y = -OBSTACLE_HEIGHT - rand() % 500; // 随机生成左上角的y坐标,使得障碍物不会在屏幕外出现 obstacle.width = OBSTACLE_WIDTH; obstacle.height = OBSTACLE_HEIGHT; obstacle.type = rand() % NUM_OBSTACLE_TYPES; // 随机生成障碍物的类型 obstacles.push_back(obstacle); } ``` 其中,`NUM_OBSTACLES`表示生成的障碍物数量,`OBSTACLE_WIDTH`和`OBSTACLE_HEIGHT`表示障碍物的宽度和高度,`NUM_OBSTACLE_TYPES`表示障碍物的类型数量。 3. 在游戏主循环中,每帧都更新障碍物或道具的位置,例如: ```c++ for (int i = 0; i < obstacles.size(); i++) { obstacles[i].y += obstacle_speed; // 更新障碍物的y坐标,使其向下移动 if (obstacles[i].y > WINDOW_HEIGHT) { // 如果障碍物已经移出屏幕外,则重新生成障碍物 obstacles[i].x = rand() % (WINDOW_WIDTH - OBSTACLE_WIDTH); obstacles[i].y = -OBSTACLE_HEIGHT - rand() % 500; obstacles[i].type = rand() % NUM_OBSTACLE_TYPES; } } ``` 其中,`obstacle_speed`表示障碍物的移动速度。 4. 在游戏主循环中,每帧都绘制障碍物或道具,例如: ```c++ for (int i = 0; i < obstacles.size(); i++) { switch (obstacles[i].type) { case 1: // 路障 setfillcolor(LIGHTGRAY); fillrectangle(obstacles[i].x, obstacles[i].y, obstacles[i].x + obstacles[i].width, obstacles[i].y + obstacles[i].height); break; case 2: // 加速道具 setfillcolor(YELLOW); fillrectangle(obstacles[i].x, obstacles[i].y, obstacles[i].x + obstacles[i].width, obstacles[i].y + obstacles[i].height); break; // 其他类型的障碍物或道具 } } ``` 其中,`setfillcolor`和`fillrectangle`是easyx库中的函数,用于设置颜色和绘制矩形。不同类型的障碍物或道具可以用不同的颜色区分。 希望这些代码可以帮助到您!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Starzkg

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值