题目链接

理解了题意之后,就不难了。。状态压缩+暴力.

 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)相关推荐

  1. DFS水题 URAL 1152 False Mirrors

    题目传送门 1 /* 2 题意:一个圈,每个点有怪兽,每一次射击能消灭它左右和自己,剩余的每只怪兽攻击 3 搜索水题:sum记录剩余的攻击总和,tot记录承受的伤害,当伤害超过ans时,结束,算是剪枝 ...

  2. ural 1009. K-based Numbers - dp

    1009. K-based Numbers Let's consider K-based numbers, containing exactlyN digits. We define a number ...

  3. URAL 2072 Kirill the Gardener 3

    URAL 2072 思路: dp+离散化 由于湿度的范围很大,所以将湿度离散化 可以证明,先到一种湿度的最左端或者最右端,然后结束于最右端或最左端最优,因为如果结束于中间,肯定有重复走的路 状态:dp ...

  4. 【学时总结】◆学时·VIII◆ 树形DP

    ◆学时·VIII◆ 树形DP DP像猴子一样爬上了树--QwQ ◇ 算法概述 基于树的模型,由于树上没有环,满足DP的无后效性,可以充分发挥其强大统计以及计算答案的能力. 一般来说树形DP的状态定义有 ...

  5. POJ 2955 (区间DP)

    题目链接: http://poj.org/problem?id=2955 题目大意:括号匹配.对称的括号匹配数量+2.问最大匹配数. 解题思路: 看起来像个区间问题. DP边界:无.区间间隔为0时,默 ...

  6. [代码]ural 1655 Somali Pirates

    Abstract ural 1655 Somali Pirates dp Source http://acm.timus.ru/problem.aspx?space=1&num=1655 So ...

  7. poj 2397(二分+dp)

    题意:蜘蛛侠可以上下跳,问如何跳可以使得达到的最高高度尽可能小.并且最后的位置要在地面. 解题思路:首先记录跳的所有高度和sum,蜘蛛侠所能达到的最高高度肯定在1-sum之间(否则不可能做到),标准的 ...

  8. 洛谷P1006 传纸条(多维DP)

    小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题.一次素质拓展活动中,班上同学安排做成一个mm行nn列的矩阵,而小渊和小轩被安排在矩阵对角线的两端,因此,他们就无法直接交谈了.幸运的是,他们 ...

  9. CodeForces - 1560F2 Nearest Beautiful Number (hard version)(二分+数位dp)

    题目链接:点击查看 题目大意:给出一个十进制数字 nnn 和一个约束 kkk,问大于等于 nnn 且满足不同的数位个数小于等于 kkk 的最小的数字是多少 题目分析:自己写的贪心太丑了,就不放上来丢人 ...

最新文章

  1. canvas初体验之加载图片
  2. Nuke编辑工具包新版 Cara VR 插件发布
  3. wxWidgets:wxRearrangeList类用法
  4. Redis主从复制与优化
  5. Cross-Validation(交叉验证)详解
  6. oracle sql语句 只读,Oracle_SQL语句
  7. C ++ 指针 | 指针的详细概念和使用_1
  8. 工业机器人维保调查表_《工业机器人系统集成及维护》课程建设调研报告
  9. 游戏中出现服务器维护中怎么办,游戏服务器显示维护中
  10. 员工申请加薪无望辞职,老板:不知感恩
  11. 基于WordPress建个人博客
  12. 模块度计算python代码_转:模块度(Modularity)与Fast Newman算法讲解与代码实现
  13. Linux安装Erlang
  14. 50行Python代码,一键获取微博热点!
  15. 三极管吸潮失效分析案例
  16. ID号自动生成,补缺功能
  17. JavaScript 各种参数 详解(十二)
  18. 使用 Web 高速缓存减少网络流量 / Reducing network traffic with Web caching
  19. Java堆内存Heap与非堆内存Non-Heap简介和设置
  20. 1. 什么是ThingsBoard

热门文章

  1. 魔教《3字魔经》为何优于其它武功秘籍?
  2. 暴汗,今天遇到个奇事
  3. 第 28 小时项目管理过程实践和案例分析
  4. .net通过获取客户端IP地址反查出用户的计算机名
  5. 如何kill掉tomcat服务
  6. 联想、戴尔、惠普等笔记本预装膨胀件 存在安全隐患
  7. 一名作曲专业毕业生的安全架构师之路
  8. 面向对象的编程学习笔记
  9. 十五天精通WCF——第十四天 一起聊聊FaultException
  10. python脚本监控网站状态 - 赵海华_运维之路 - 51CTO技术博客