首页 > 其他分享 >数字游戏

数字游戏

时间:2022-08-30 16:47:02浏览次数:88  
标签:10 遍历 游戏 int MAX right define 数字

P1043 [NOIP2003 普及组] 数字游戏 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

  • 化环为链 开两倍空间,求答案时遍历一遍
  • big small[left][right]代表从乐left到right的最优解,题意还有分割成m块,那么再加一维
  • modd 要求取模后全为非负数 :((x%10)+10)%10
  • 遍历分割块数,再遍历左右端点,再遍历分割点,内部看能否更新为前段和后段的乘积,前段是由dp值可以直接得到的,后段由前缀和求得
// 4 2
// 4
// 3
// -1
// 2
// https://www.luogu.com.cn/problem/P1043
#include <bits/stdc++.h>
using namespace std;
#define N 1e5
#define INF 2147483647
#define MAX 1000

int big[MAX][MAX][15], small[MAX][MAX][15];

int orign[MAX];
int n, m;
inline int modd(int x)
{
    return (x % 10 + 10) % 10;
}
int main()
{
    cin >> n >> m;
    for (int i = 1; i <= n; i++)
        scanf("%d", orign + i), orign[i + n] = orign[i];
    for (int i = 1; i <= 2 * n; i++)
        orign[i] += orign[i - 1];
    for (int i = 1; i <= 2 * n; i++)
        for (int j = i; j <= 2 * n; j++)
            big[i][j][1] = small[i][j][1] = modd(orign[j] - orign[i - 1]);
    for (int sps = 2; sps <= m; sps++)
        for (int left = 1; left <= 2 * n; left++)
            for (int right = left + sps - 1; right <= 2 * n; right++)
                small[left][right][sps] = INF;
    for (int sps = 2; sps <= m; sps++)
        for (int left = 1; left <= 2 * n; left++)
            for (int right = left + sps - 1; right <= 2 * n; right++)
                for (int k = left + sps - 2; k < right; k++)
                    big[left][right][sps] = max(big[left][right][sps], big[left][k][sps - 1] * modd(orign[right] - orign[k])), small[left][right][sps] = min(small[left][right][sps], small[left][k][sps - 1] * modd(orign[right] - orign[k]));
    int max_ans = 0, min_ans = INF;
    for (int i = 1; i <= n; i++)
        max_ans = max(max_ans, big[i][i + n - 1][m]), min_ans = min(min_ans, small[i][i + n - 1][m]);
    cout << min_ans << endl << max_ans;
}

 

标签:10,遍历,游戏,int,MAX,right,define,数字
From: https://www.cnblogs.com/Wang-Xianyi/p/16639917.html

相关文章

  • 大咖说·图书分享|阿里云数字新基建系列:混合云架构
    混合云架构是什么?发展历程是怎样的?它有哪些应用场景?本期大咖说,看阿里云混合云技术服务高级技术专家、《混合云架构》图书联合作者解国红如何分享。  嘉宾介绍解......
  • 华为云GaussDB深耕数据库根技术,助力能源行业数字化转型
     近日,以“推进能源数字化共建低碳智能社会”为主题的第十二届能源企业信息化大会在北京举办。华为云数据库首席架构师冯柯在会上分享了华为云GaussDB的创新技术和能源......
  • 数字信号处理--第一章/绪论
    数字信号处理的基本运算提出的信号处理问题,都要用适当的理论模型来表示,而理论模型要归结于一组相互联系的运算即为数字信号处理算法。常用基本运算:1、差分方程的计算2、离......
  • MySQL提取字符串中的数字
    1--方法12selectreplace(reverse(FORMAT(reverse('国械注准20173463309'),0)),',','');34--方法25CREATEFUNCTIONget_number(paramvarchar(50))......
  • 190. 颠倒二进制位 (二进制数字反转)
    难度简单551收藏分享切换为英文接收动态反馈颠倒给定的32位无符号整数的二进制位。提示:请注意,在某些语言(如Java)中,没有无符号整数类型。在这种情况下,输入和输出都......
  • UE5 多人游戏学习笔记3 (多人游戏)
    创建项目并引用插件movethemultiplayersessionpluginfolderinto"Plugins"folderofproject.enable"OnlineSubsystemSteam"in"pluginsetting".editconfi......
  • 新型数字签名的设计与分析 pdf
    高清扫描版下载链接:https://pan.baidu.com/s/1l4G-uCfuc6yzxN30YVgs-A点击这里获取提取码新型数字签名的设计与分析内容围绕新型数字签名的研究热点和难点展开。新型数字......
  • 关于一加一碰手游戏的一点研究
    首先介绍“一加一碰手游戏”。具体规则是这样的:游戏有两个玩家,每个玩家有两只手。初始所有手上的数字都为\(1\)。两个玩家轮流行动,轮到一个玩家时他可以选择对......
  • 【转载】数字设计中的时钟与约束
    转载出处:http://www.cnblogs.com/IClearner/最近做完了synopsys的DCworkshop,涉及到时钟的建模/约束,这里就来聊聊数字中的时钟(与建模)吧。主要内容如下所示:......
  • 0015-wasm-康威生命游戏
    环境Time2022-05-14Rust1.60.0Node12.22.5wasm-pack0.10.2前言说明参考:https://rustwasm.github.io/docs/book/game-of-life/implementing.html目标在上一......