首页 > 乘之
头像 WIDA
发表于 2025-01-25 22:31:51
本题其实与小蛇的选取策略无关,小龙为了不使得小蛇把答案进一步变小,所以索性直接选中整个区间,是最优策略。 这一策略实际上也可以简要的概括为全局最优。试想,小龙如果做出的是当前最优的选择,说明,此时只要继续扩充小龙选择的区间(如果能扩充),那么答案一定会更劣。所以本题不应该从局部最优考虑。 思考以下样 展开全文
头像 此在Dasein
发表于 2026-03-21 05:20:43
该问题是一个具有对抗性质的博奕论问题,可以建模为一个两步决策序列博弈。 1. 数学模型 给定数组 的元素总和为 。 设小龙选择的区间为 ,小蛇选择的区间为 。区间并集(即被选中的元素集合)为 。选中元素的总和为 。 执行操作后,数组的总和 可以表示为: 令 。小龙的目标是最大化 ,小蛇的目标是 展开全文
头像 smartiphone
发表于 2026-03-21 10:40:57
#include<bits/stdc++.h> using namespace std; using ll = long long; void solve() { ll sum = 0; int n,k; cin >> n >> k; 展开全文
头像 腌萝卜干
发表于 2026-03-21 13:16:57
因为小蛇会导致数组的值变小, 因此为了不让小蛇操作, 小龙直接对数组全部操作 #include <bits/stdc++.h> #define x first #define y second #define all(x) x.begin(), x.end() using names 展开全文
头像 牛客193507862号
发表于 2025-07-11 21:06:05
T_1=int(input()) for _ in range(T_1): n,k=map(int,input().split()) list_an=map(int,input().split()) print(sum(list_an)*k)
头像 胡轩轩SG
发表于 2026-03-24 18:49:00
#include <bits/stdc++.h> using namespace std; using ll=long long; const int N=1e5+9; ll k,T,n,a,ans; int main() { cin>>T; while(T 展开全文
头像 牛客754921490号
发表于 2025-12-12 22:21:50
package main import ( "fmt" ) /* 如果k大于0 1、当A选了一段数,左右两边都是连续的正数 2、B则会选择相邻的所有负数、 3、既然B必然会选相邻负数,那么不如A自己选了这段负数还能再选一段正数,然后回到状态1 展开全文
头像 ading007
发表于 2025-05-21 17:11:38
package main import ( "fmt" ) func main() { var T int fmt.Scan(&T) results := make([]int, T) for i:=0; i< 展开全文
头像 牛客856751393号
发表于 2025-03-12 16:14:23
# 其中一个人为了避免:另外一个人扩充区间后,使得结果会变大或变小;直接选中整个区间 import sys while True: try: input = sys.stdin.read data = list(map(int, input().split( 展开全文
头像 番禺小韭菜
发表于 2025-03-06 11:02:24
#include <iostream> #include <vector> using namespace std; void solve(){ int n, k; cin >> n >> k; vector<int&g 展开全文

等你来战

查看全部