URAL 1152. False Mirrors(DP)
题目链接
理解了题意之后,就不难了。。状态压缩+暴力.
1 #include <cstring> 2 #include <cstdio> 3 #include <string> 4 #include <iostream> 5 #include <algorithm> 6 #include <vector> 7 #include <queue> 8 #include <cmath> 9 using namespace std; 10 int dp[1<<20]; 11 int sum[1<<20]; 12 int p[101]; 13 int minz; 14 int main() 15 { 16 int i,n,j,t1,t2,x; 17 scanf("%d",&n); 18 for(i = 0;i < n;i ++) 19 { 20 scanf("%d",&p[i]); 21 } 22 for(i = 0;i < 1<<n;i ++) 23 { 24 dp[i] = 10000000; 25 for(j = 0;j < n;j ++) 26 { 27 if(i&(1<<j)) 28 sum[i] += p[j]; 29 } 30 } 31 dp[(1<<n)-1] = 0; 32 for(i = (1<<n)-1;i >= 1;i --) 33 { 34 for(j = 0;j < n;j ++) 35 { 36 if(i&(1<<j)) 37 { 38 x = i - (1<<j); 39 if(j-1 < 0) 40 t1 = n-1; 41 else 42 t1 = j-1; 43 if(j+1 >= n) 44 t2 = 0; 45 else 46 t2 = j+1; 47 if(x&(1<<t1)) 48 x -= 1<<t1; 49 if(x&(1<<t2)) 50 x -= 1<<t2; 51 dp[x] = min(dp[x],dp[i]+sum[x]); 52 } 53 } 54 } 55 printf("%d\n",dp[0]); 56 return 0; 57 }
转载于:https://www.cnblogs.com/naix-x/p/3298458.html
URAL 1152. False Mirrors(DP)相关推荐
- DFS水题 URAL 1152 False Mirrors
题目传送门 1 /* 2 题意:一个圈,每个点有怪兽,每一次射击能消灭它左右和自己,剩余的每只怪兽攻击 3 搜索水题:sum记录剩余的攻击总和,tot记录承受的伤害,当伤害超过ans时,结束,算是剪枝 ...
- ural 1009. K-based Numbers - dp
1009. K-based Numbers Let's consider K-based numbers, containing exactlyN digits. We define a number ...
- URAL 2072 Kirill the Gardener 3
URAL 2072 思路: dp+离散化 由于湿度的范围很大,所以将湿度离散化 可以证明,先到一种湿度的最左端或者最右端,然后结束于最右端或最左端最优,因为如果结束于中间,肯定有重复走的路 状态:dp ...
- 【学时总结】◆学时·VIII◆ 树形DP
◆学时·VIII◆ 树形DP DP像猴子一样爬上了树--QwQ ◇ 算法概述 基于树的模型,由于树上没有环,满足DP的无后效性,可以充分发挥其强大统计以及计算答案的能力. 一般来说树形DP的状态定义有 ...
- POJ 2955 (区间DP)
题目链接: http://poj.org/problem?id=2955 题目大意:括号匹配.对称的括号匹配数量+2.问最大匹配数. 解题思路: 看起来像个区间问题. DP边界:无.区间间隔为0时,默 ...
- [代码]ural 1655 Somali Pirates
Abstract ural 1655 Somali Pirates dp Source http://acm.timus.ru/problem.aspx?space=1&num=1655 So ...
- poj 2397(二分+dp)
题意:蜘蛛侠可以上下跳,问如何跳可以使得达到的最高高度尽可能小.并且最后的位置要在地面. 解题思路:首先记录跳的所有高度和sum,蜘蛛侠所能达到的最高高度肯定在1-sum之间(否则不可能做到),标准的 ...
- 洛谷P1006 传纸条(多维DP)
小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题.一次素质拓展活动中,班上同学安排做成一个mm行nn列的矩阵,而小渊和小轩被安排在矩阵对角线的两端,因此,他们就无法直接交谈了.幸运的是,他们 ...
- CodeForces - 1560F2 Nearest Beautiful Number (hard version)(二分+数位dp)
题目链接:点击查看 题目大意:给出一个十进制数字 nnn 和一个约束 kkk,问大于等于 nnn 且满足不同的数位个数小于等于 kkk 的最小的数字是多少 题目分析:自己写的贪心太丑了,就不放上来丢人 ...
最新文章
- canvas初体验之加载图片
- Nuke编辑工具包新版 Cara VR 插件发布
- wxWidgets:wxRearrangeList类用法
- Redis主从复制与优化
- Cross-Validation(交叉验证)详解
- oracle sql语句 只读,Oracle_SQL语句
- C ++ 指针 | 指针的详细概念和使用_1
- 工业机器人维保调查表_《工业机器人系统集成及维护》课程建设调研报告
- 游戏中出现服务器维护中怎么办,游戏服务器显示维护中
- 员工申请加薪无望辞职,老板:不知感恩
- 基于WordPress建个人博客
- 模块度计算python代码_转:模块度(Modularity)与Fast Newman算法讲解与代码实现
- Linux安装Erlang
- 50行Python代码,一键获取微博热点!
- 三极管吸潮失效分析案例
- ID号自动生成,补缺功能
- JavaScript 各种参数 详解(十二)
- 使用 Web 高速缓存减少网络流量 / Reducing network traffic with Web caching
- Java堆内存Heap与非堆内存Non-Heap简介和设置
- 1. 什么是ThingsBoard