weapon制作武器
weapon制作武器 (weapon.pas/c/cpp) 解题报告
制作武器weapon.pas/c/cpp) 背景
WZland的紧急避难所很快就建好了,WZland的居民们陆续地来到这个紧急避难所。但
WZland的许多居民不肯躲避,他们想要和外星人正面作战……
问题描述
在紧急避难所内,应广大居民的要求,WZland的国王决定成立一个自卫队,自卫队由
WZOI的JHB来担任领导。
JHB成为自卫队的领导之后,他的首要任务就是制作武器。WZland盛产矿石,每一种矿
石中都含有巨大的能量。当两块矿石相结合,会有一块消失而另一块保留下来,并且会产生
巨大能量。JHB想通过吸收这些能量,制造出一种能量化的武器,这个武器的杀伤力就是产
生的能量总和。
JHB找人弄到了若干块不同的矿石(每种矿石有且只有一种),他想用这些矿石制作出杀
伤力最大的武器。他把这些矿石交给WZOI的你,然后你需要制作出他需要的武器。当然一
个武器是不够的,JHB陆续给你送来了若干组矿石,你需要将每组的矿石都制作成武器。
输入格式
输入数据第一行包含一个整数T,表示有T组矿石;
对于每组矿石会有若干行来描述。
第一行包含一个整数N,表示当前组矿石的种类。
接下来N行每行N个整数,第i行的第j个数表示矿石i和矿石j结合,然后j消失i留下产生的能
量。
输出格式
输出数据有T行,每行一个整数S,分别表示矿石造出来的武器的最大杀伤力。
样例输入输出
Sample #1
weapon.in weapon.out
1 16
3
0 10 1
11 0 3
4 5 0
Sample #2
weapon.in weapon.out
2 4
2 22
0 4
1 0
3
0 20 1
12 0 1
1 10 0
样例解释
对于Sample #2 的第二个测试点,我们可以这样制作武器:1 和2 合并留下2,获得能量
12,3 和2 合并留下3,获得能量 10,总能量为22。
数据规模
对于30 的数据,2≤N≤10,T≤10;
对于50 的数据,2≤N≤10,T≤100;
对于100 的数据,2≤N≤10,T≤500;
对于100 的数据,保证S≤Maxlongint。
时间限制
1s
刷表大法好,状压大法好。
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std ;
int t , n , links[][] , f[] ; void Init( )
{
scanf( "%d" , &n ) ;
for( int x = ; x <= n ; ++x )
for( int y = ; y <= n ; ++y )
scanf( "%d" , &links[x][y] ) ;
} void Solve( )
{
memset( f , , sizeof(f) ) ;
int ans = ;
for( int k = ; k <= ( << n ) - ; ++k )
for( int i = ; i <= n ; ++i )
for( int j = ; j <= n ; ++j )
{
if( i == j || ( k & ( <<( i - ) ) ) || ( k & ( << (j-) ) ) ) continue ;
f[k|(<<(i-))] = max( f[k|(<<(i-))] , f[k] + links[j][i] ) ;
ans = max( f[k|(<<(i-))] , ans ) ;
}
printf( "%d\n" , ans ) ;
} int main( )
{
freopen( "weapon.in" , "r" , stdin ) ;
freopen( "weapon.out" , "w" , stdout ) ;
scanf( "%d" , &t ) ;
while( t-- )
{
Init( ) ;
Solve( ) ;
}
return ;
}
weapon制作武器的更多相关文章
- Unity 武器拖尾效果
Pocket RPG Weapon Trails 武器拖尾效果 Asset Store地址:https://www.assetstore.unity3d.com/en/#!/content/2458 ...
- [Unity3D]Unity资料大全免费分享
都是网上找的连七八糟的资料了,整理好分享的,有学习资料,视频,源码,插件……等等 东西比较多,不是所有的都是你需要的,可以按 ctrl+F 来搜索你要的东西,如果有广告,不用理会,关掉就可以了,如 ...
- Unity3D插件分享
网上看到一个讲unity3D插件的,看着不错,转载过来. 本文汇总了近百个Unity3D插件,供大家参考下载. 2D_Toolkit_1.51 动画开发插件包 FingerGestures 触摸插件 ...
- Unity3D 200个插件免费分享
插件清单: 2D_Toolkit_1.51 动画开发插件包 FingerGestures 触摸插件 ORK_Okashi_RPG_Kit Unity3D角色扮演 ...
- Unity3d插件推荐
2D_Toolkit_1.51 动画开发插件包 FingerGestures 触摸插件 ORK_Okashi_RPG_Kit Unity3D角色扮演游戏开发工具包 uScript-Visual-Scr ...
- Unity项目 - DeathtrapDungeon死亡地牢
目录 游戏原型 项目演示 绘图资源 代码实现 注意事项 技术探讨 参考来源 游戏原型 死亡地牢是一款 2D-Roguelike 的地牢冒险游戏.手握利刃,斩杀怪物,在凶险的地牢内生存下去.但注意,敌人 ...
- CET4词汇
abandon vt.丢弃:放弃,抛弃 ability n.能力:能耐,本领 abnormal a.不正常的:变态的 aboard ad.在船(车)上:上船 abroad ad.(在)国外:到处 ab ...
- mud目录命令说明
目錄結構 以下列出的是 ES2 mudlib 根目錄下標準的子目錄結構,以及簡短的說明. /adm 儲存由系統管理者所管理的程式與資料檔. /std 儲存標準物件的程式碼. /obj 儲存通用物件 ...
- [Unity 设计模式]桥接模式(BridgePattern)
1.前言 继上一讲IOC模式的基础上继续本讲桥接模式,笔者感觉桥接模式是23种设计模式中桥接模式是最好用但也是最难理解的设计模式之一,23中设计模式就好武侠剧中一本武功秘籍,我们在工作过程中想要熟练运 ...
随机推荐
- vs git .ignore
## Ignore Visual Studio temporary files, build results, and## files generated by popular Visual Stud ...
- Java之向左添加零(000001)
int i_m = 270000 ; String str_m = String.valueOf(i_m); String str ="000000"; str_m=str.sub ...
- 优化函数式编程:向 PHP 移植 Clojure 函数
许多通用程序设计语言试图兼容大多数编程范式,PHP 就属于其中之一.不论你想要成熟的面向对象的程序设计,还是程序式或函数式编程,PHP 都可以做到.但我们不禁要问,PHP 擅长函数式编程吗?本文系国内 ...
- AD设计中,三种大面积覆铜的区别
在AD设计中,主要有三种大面积覆铜方式,分别是Fill(铜皮) Polygon Pour(灌铜)和Plane(平面层),这三种方式刚开始的时候没有细细区分,现在分别应用了一下, 总结如下,欢迎指正 F ...
- 【HDOJ】1026 Ignatius and the Princess I
这道题搞了很久啊.搜索非常好的一道题.昨天想了2小时,以为是深搜,但后来发现深搜怎么也没法输出正确路径.今天拿宽搜试了一下,问题就是普通的队列宽搜没法得到当前时间最小值.看了一下讨论区,发现优先级队列 ...
- IPv6 tutorial – Part 8: Special addresses
https://4sysops.com/archives/ipv6-tutorial-part-8-special-addresses/ The special IPv6 addresses disc ...
- Case Studies: Retail and Investment Banks Use of Social Media
The past couple of months have seen an increased acknowledgement of the role social media has to pla ...
- [转] KMP算法详解
转载自:http://www.matrix67.com/blog/archives/115 KMP算法详解 如果机房马上要关门了,或者你急着要和MM约会,请直接跳到第六个自然段. 我们这里说的K ...
- isIOS9
function isIOS9() { //获取固件版本 var getOsv = function () { var reg = /OS ((\d+_?){2,3})\s/; if (navigat ...
- $destroy
ng-view 路由切换会触发 $destroy