首页 > 其他分享 >250 消除

250 消除

时间:2024-11-07 09:46:51浏览次数:2  
标签:int st 蜗蜗 ai 消除 250 方块


/*

http://oj.daimayuan.top/course/5/problem/250

桌面上有 n
 个方块,蜗蜗想把它们都消除掉。每个方块有个权值,第 i
 个方块的权值等于 ai
。每一次消除蜗蜗有两种选择:

选择一个还没有被消除的方块 i
,付出 ai
 的代价把它消除;

选择两个还没有被消除的方块 i,j (i≠j)
,付出 ai
 xor aj
 的代价把它们消除;

请问蜗蜗最少需要花费多少代价,能把 n
 个方块都消除掉?

输入格式
第一行一个整数 n
 表示方块数目。

第二行 n 
 个整数 a1,a2,...,an
。

输出格式
一行一个整数表示答案。

样例输入
3
1 4 5
样例输出
2
数据范围
对于 100%
 的数据,保证 2≤n≤20,1≤ai≤100000。
*/

#define _CRT_SECURE_NO_WARNINGS

#include <iostream>
#include <algorithm>
#include <memory.h>

using namespace std;


const int N = 25;
int a[N];
int n;
int ans;


int dp[1 << N];


bool isIn(int st, int a) {
	return st & (1 << a);
}


int main()
{
	scanf("%d",&n);
	for (int i = 0; i < n; i++) scanf("%d",&a[i]);

	memset(dp, 0x3f, sizeof dp);
	dp[(1 << n) - 1] = 0;
	for(int st = (1 << n) - 1; st >= 0; st--) {
		for (int i = 0; i < n; i++) {
			for (int j = i + 1; j < n; j++) {
				if (isIn(st, i) && isIn(st, j)) {
					int newst = st ^ (1 << i);
					newst ^= (1 << j);
					dp[newst] = min(dp[newst], dp[st] + (a[i] ^ a[j]) );
				}
			}

			if (isIn(st, i)) {
				int newst = st ^ (1 << i);
				dp[newst] = min(dp[newst], dp[st]  + a[i]);
			}
		}
	}

	printf("%d\n",dp[0]);

	return 0;
}

标签:int,st,蜗蜗,ai,消除,250,方块
From: https://www.cnblogs.com/itdef/p/18531572

相关文章

  • 【数据结构-邻项消除】力扣1047. 删除字符串中的所有相邻重复项
    给出由小写字母组成的字符串s,重复项删除操作会选择两个相邻且相同的字母,并删除它们。在s上反复执行重复项删除操作,直到无法继续删除。在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。示例:输入:“abbaca”输出:“ca”解释:例如,在“abbaca”中,我们可以......
  • Python爬取豆瓣音乐top250
    importrequestsfrombs4importBeautifulSoupimportpandasaspdimporttimedefcrawl_douban_music_top250():data=[]base_url="https://music.douban.com/top250"foriinrange(0,250,25):url=f"{base_url}?start={......
  • [HDU 2509] Be the Winner (博弈、分裂游戏)
    本质上是一个Anti-NimGame。考虑如何计算SG函数。如果当前有堆\(x\)个石子,我取出任意个后,一定会把当前堆分为左右两堆,我们可以枚举左右两堆的大小\(l,r\),保证\(0\lel+r<x\),则有\[SG(x)=\mathrm{mex}(SG(l)\oplusSG(r))\]#include<bits/stdc++.h>usingnames......
  • DC/DC直流电源升压可调电压控制输出模块12v24v供电0-5v/0-10v转0-50v/80v/100v/110v/1
    特点效率高达75%以上1*2英寸标准封装单电压输出可直接焊在PCB上工作温度:-40℃~+75℃阻燃封装,满足UL94-V0要求温度特性好电压控制输出,输出电压随控制电压线性变化应用GRB系列模块电源是一种DC-DC升压变换器。该模块电源的输入电压分为:4.5~9V、9~18V、18~36V及36~7......
  • 250MS/s 4通道16bit PCIE采集卡
    250MS/s4通道16bitPCIE采集卡是一款同时具备直流耦合程控放大器和支持双极性宽带信号输入的高速数据采集卡。板载FPGA具备实时信号处理能力,具备16bit,四通道250MS/s高采样率的特性,这些特性使其成为激光雷达、分布式光纤传感等领域进行信号采集和分析的理想工具。提供快速的PC......
  • Scrapy | 通过爬取豆瓣Top250电影信息来学习在中间件中应用随机请求头和代理ip
    中间件的使用1.scrapyl中间件的分类和作用1.1scrapy中间件的分类1.2scrapy中间的作用:预处理request和response对象2.下载中间件的使用方法:3.定义实现随机User-Agent的下载中间件3.1实战:爬取豆瓣Top250电影信息3.2中间件使用实现随机User-Agent4.代理ip的使用4.1思......
  • 转载 WeMod单机游戏修改器 支持2500+游戏
    无数作者为各种游戏制作各类辅助工具,支持超过5000款PC单机游戏并且每天都会更新支持更多新的游戏,已解锁专业版会员付费功能!下载即可立即使用。下载地址:链接:https://pan.baidu.com/s/1JBD0vRG_hr8nHBbFHjhGoQ?pwd=4nja提取码:4nja复制这段内容后打开百度网盘手机App,操作......
  • 爬虫爬取豆瓣top250电影信息
     使用正则解析,获得名字,影片信息,打分,评价人数,影评等数据。存储到csv文件中,少部分数据爬取不到还存在优化空间。importrequestsimportreimportcsv#拿到豆瓣top250网站源码headers={"User-Agent":"Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36......
  • xpath案例-豆瓣top250电影
    需求:需求:爬取电影名称、评分、引言、详情页的url,翻页爬取1-10页。代码:importrequestsfromlxmlimportetree'''url分析:第一页:https://movie.douban.com/top250第二页:https://movie.douban.com/top250?start=25&filter=第三页:https://movie.douban.com/top250......
  • 【python爬虫案例】利用python爬取豆瓣音乐评分TOP250的排行数据!
    一、爬取案例-豆瓣音乐TOP250之前给大家分享了2个豆瓣的python爬虫案例:【python爬虫案例】利用python爬虫爬取豆瓣电影评分TOP250排行数据!【python爬虫案例】利用python爬虫爬取豆瓣读书评分TOP250的排行数据! 今天再给大家分享一下:豆瓣音乐排行榜TOP250的python爬虫案例!爬......