首页 > 其他分享 >CSP历年复赛题-P1199 [NOIP2010 普及组] 三国游戏

CSP历年复赛题-P1199 [NOIP2010 普及组] 三国游戏

时间:2024-05-29 11:47:46浏览次数:29  
标签:26 NOIP2010 int 32 28 P1199 次大值 默契 CSP

原题链接:https://www.luogu.com.cn/problem/P1199

题意解读:人机轮流选将,电脑策略就是破坏可能和人已选能组成最大默契值的将,问人是否必胜,求出站的一对武将的默契值。

解题思路:

贪心题通常比较难以下手,经过分析,人肯定不可能选到每一行的最大默契值,因为电脑会破坏;

进一步思考,那人能选到第二大默契值也就可以保证必胜了,因为电脑也不可能选到最大默契值(最大值的其中一个被人捷足先登)

那么人应该选哪一个第二大的默契值呢 ?显然是选各行里第二最大默契值里最大的那一个。比如样例:


5 28 16 29 27 
23 3 20 1 
8 32 26 
33 11 
12 

补全后:

  1 2 3 4 5 6
1   5 28 16 29 27
2 5   23 3 20 1
3 28 23   8 32 26
4 16 3 8   33 11
5 29 20 32 33   12
6 27 1 26 11 12  

第一行:次大值28

第二行:次大值20

第三行:次大值28

第四行:次大值16

第五行:次大值32

第六行:次大值26

显然,选次大值最大的32更好。

因此,人是必胜,出站的一对武将默契值就是每行次大默契值里最大者。

100分代码:

#include <bits/stdc++.h>
using namespace std;

int n;
int a[505][505];
int ans;

int main()
{
    cin >> n;
    for(int i = 1; i <= n; i++)
    {
        for(int j = i + 1; j <= n; j++)
        {
            cin >> a[i][j];
            a[j][i] = a[i][j];
        }
    }

    for(int i = 1; i <= n; i++)
    {
        sort(a[i] + 1, a[i] + n + 1);
        ans = max(ans, a[i][n-1]); //更新每行次大值的最大者
    }
    cout << 1 << endl;
    cout << ans;

    return 0;
}

 

标签:26,NOIP2010,int,32,28,P1199,次大值,默契,CSP
From: https://www.cnblogs.com/jcwy/p/18219875

相关文章

  • CCF-CSP真题《202403-1 词频统计》思路+python满分题解
    哇q(≧▽≦q),第一次写博客,请大家多多关照○| ̄|_ 看到没啥人提供202403的第一题解题思路及python代码,刚好写完,心血来潮想分享解题思路,就写下了这篇博客,有其他的编码版本,欢迎大家一起探讨呀(虽然我是算法菜鸟┗(T﹏T)┛,但有问题,我会尽力回答的!!!)好了废话不多说,上解题思路!大概想了......
  • 【CSP】202012-2 期末预测之最佳阈值
    2020年第21次CCF计算机软件能力认证  202012-2 期末预测之最佳阈值原题链接:期末预测之最佳阈值时间限制: 1.0秒空间限制: 512MiB目录题目背景题目描述输入格式输出格式样例1输入样例1输出样例1解释样例2输入样例2输出子任务解题思路AC代码期末预测之安......
  • CSP历年复赛题-P1190 [NOIP2010 普及组] 接水问题
    原题链接:https://www.luogu.com.cn/problem/P1190题意解读:n个人在m个水龙头排队接水,每个人接水量不同,接完水的排队的人可以接上,求总的接水时间。解题思路:1、先把前m个人安排在m个水龙头2、对于m后面的每一个人,都排在目前m个水龙头总接水时间最短的后面3、最后看m个水龙头最大......
  • CSP历年复赛题-P1179 [NOIP2010 普及组] 数字统计
    原题链接:https://www.luogu.com.cn/problem/P1179题意解读:统计l~r之间的整数包括多少个数字2。解题思路:枚举每一个数,对每一个数的每一位数字进行判断。100分代码:#include<bits/stdc++.h>usingnamespacestd;intl,r,ans;intmain(){cin>>l>>r;f......
  • CSP历年复赛题-P1058 [NOIP2008 普及组] 立体图
    原题链接:https://www.luogu.com.cn/problem/P1058题意解读:在m*n的平面上,输出若干个立方体,每一个格子可以有高度不同的多个立方体。解题思路:此题咋一看来,无从下手,仔细分析,其实一道模拟题。如何模拟?我们一起来解决一下几个关键问题:1、如何画图?要在平面上输出图案,本质上就是将......
  • CSP历年复赛题-P1067 [NOIP2009 普及组] 多项式输出
    原题链接:https://www.luogu.com.cn/problem/P1067题意解读:模拟法依次输出多项式内容即可,但是需要考虑的周全,主要有以下关键点:1、系数为0时不输出多项式2、第一个符号,只有负号才输出3、次数不为0时,不输出为1的系数;次数为0时,输出所有系数4、次数为1时,不输出次数;次数为0时不输......
  • 利用PyCSP3库(含大量全局约束)进行组合约束建模
    文章目录1.什么是PyCSP3?2.安装方法(Windows)2.1通过Google_colab直接运行2.2通过pip进行安装3.快速入门3.1声明变量3.2更新约束3.3定义目标3.4常用的全局约束1.什么是PyCSP3?PyCSP3是Python中的一个库,用于对组合约束问题进行建......
  • CSP历年复赛题-P1057 [NOIP2008 普及组] 传球游戏
    原题链接:https://www.luogu.com.cn/problem/P1057题意解读:n个人围一圈,从1开始传球m次,每次可以往左或右传,计算球再次传给1的方案数。解题思路:求方案数,通常就是DP问题,此题DP状态并不难想,如果实在不会,也可以通过DFS暴搜得部分分。1、DFS60分代码:#include<bits/stdc++.h>using......
  • CSP历年复赛题-P1055 [NOIP2008 普及组] ISBN 号码
    原题链接:https://www.luogu.com.cn/problem/P1055题意解读:验证ISBN最后一位是否正确。解题思路:直接模拟,不多说,上代码。100分代码:#include<bits/stdc++.h>usingnamespacestd;intmain(){strings;cin>>s;intcode=0;intcnt=0;for(inti......
  • CSP历年复赛题-P1096 [NOIP2007 普及组] Hanoi 双塔问题
    原题链接:https://www.luogu.com.cn/problem/P1096题意解读:汉诺双塔的移动次数,与经典汉诺塔的区间在于同一个尺寸盘子有两个。解题思路:可以直接用经典汉诺塔方法来计算,双塔的结果就最终乘以2即可。首先想到的是递归,但是由于数据量n最大200,递归会超时,但是50%的样例应该没问题,先......