Rake It In(2017南宁icpc)

本文介绍了一种44格子的游戏,玩家每次可以选择一个22格子,目标是通过逆时针旋转格子,使得最终得分最大化(先手)或最小化(后手)。游戏采用搜索暴力算法,时间复杂度为9^6。文章提供了问题的思路及代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题意:
有一个44的格子,两个人玩游戏,每一次都可以选择一个22的格子。每一轮先手选择尽可能使结果大的格子,后手选择尽可能使结果小的格子,选完后逆时针旋转这个格子,记录每次选的和,输出最后的和

思路:时间复杂度为9^6,可以用搜索暴力
每一个人都选择自己当前最优的状态,先手选择最大的,后手选择最小的
代码:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
#include<vector>
#include<algorithm>
#include<map>
#include<cmath>
using namespace std;
#define ll long long
#define inf 0x3f3f3f3f
#define pi acos(-1.0)
const int mod=1e9+7;
const int M=1e5 + 10;
int a[5][5];
int k;
int sum(int i,int j)
{
    return a[i][j] + a[i][j+1] + a[i+1][j] + a[i+1][j+1];
}
void ni(int i,int j)     //逆时针
{
    int tmp1,tmp2,tmp3,tmp4;
    tmp1=a[i][j];
    tmp2=a[i][j+1];
    tmp3=a[i+1][j];
    tmp4=a[i+1][j+1];
    a[i][j] = tmp2;
    a[i][j+1] = tmp4;
    a[i+1][j] = tmp1;
    a[i+1][j+1] = tmp3;
}
void shun(int i,int j)     //顺时针
{
    int tmp1,tmp2,tmp3,tmp4;
    tmp1 = a[i][j];
    tmp2 = a[i][j+1];
    tmp3 = a[i+1][j];
    tmp4 = a[i+1][j
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值