UVA12166 Equilibrium Mobile

VJ传送门

一道思维题,刚开始看的时候没什么思路,在博客园上参考了大佬的解析,在这里总结一下。

一、分析

这道题要求让天平平衡所需要的最小改动次数,至少有一个不变,我们可以先选定一个不变的基准,然后改变其他的秤砣,得到以此为基准的天平的总重量,如果以深度为d重量为w的秤砣为基准,那么整个天平的重量就是w * pow(2, d),即w << d。

当然,可能会有一些秤砣算出的以各自为基准的天平总重量相同,设天平总重量为sumw,那么这些秤砣的数量就表示了如果使天平的总重量为sumw需要使多少个秤砣保持不变。

以题目所给[[3,7],6]为例,如果将3看做基准,则将7改为3即可,天平总重量为12,再将6看做基准,将7改为3即可,天平总重量为12,即有两个秤砣作为基准得到的天平总重量相同为12,则如果使天平的总重量为12需要使两个秤砣保持不变。

基于以上算法,求出所有可能的sumw值以及其对应的秤砣数量,然后在这些sumw值中找到相对应的最大的秤砣数量maxn,那么sum - maxn即为所求。

二、代码

#include<iostream>
#include<string>
#include<map>

using namespace std;

map<long long, int>mp;
int sum = 0;//叶子个数
string s;
void dfs(int depth, int a, int b)//depth:深度,a:起点,b:终点
{
	if (s[a] == '[')
	{
		int p = 0;
		for (int i = a + 1; i != b; i++)
		{
			if (s[i] == '[')
				p++;
			if (s[i] == ']')
				p--;
			if (p == 0 && s[i] == ',')
			{
				dfs(depth + 1, a + 1, i - 1);//搜索左子树
				dfs(depth + 1, i + 1, b - 1);//搜索右子树
			}
		}
	}
	else
	{
		long long w = 0;
		//这里是将string类型的数字转化为long long类型
		for (int i = a; i <= b; i++)
		{
			w = w * 10 + s[i] - '0';
		}
		sum++;
		mp[w * (1 << depth)]++;
	}
}
int main()
{
	int T;
	cin >> T;
	while (T--)
	{
		sum = 0;
		mp.clear();
		cin >> s;
		dfs(0, 0, s.length() - 1);
		int maxn = 0;
		for (map<long long, int>::iterator it = mp.begin(); it != mp.end(); it++)
		{
			maxn = max(maxn, it->second);
		}
		cout << sum - maxn << endl;
	}
}

Sequential Equilibrium(序惯均衡)是精炼纳什均衡的一种形式,它是由不包含不可置信行动的战略所组成的纳什均衡。在序惯均衡中,构成该均衡的战略在每个决策点上都是最优的。因此,序惯均衡也被称为"精炼纳什均衡"或"序惯均衡"。需要注意的是,并非所有的纳什均衡都是合理的,只有那些战略不包含不可置信行动的纳什均衡才是合理的。不可置信威胁是指由于事前最优和事后最优不同而导致的许多帕累托效率无法实现的情况。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [博弈论笔记:动态博弈](https://blog.csdn.net/qq_40206371/article/details/117626623)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [机器学习(ML)、深度学习(DL)和图像处理(opencv)专用英语词典](https://blog.csdn.net/wyx100/article/details/74635853)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值