1. 题解:
  2. 列举每一种3的倍数的组合,开始先求出3条边的可行解,则
  3. 六条边的可行解可以由两个三条边得来。
  4. 详见代码解析
#include<bits/stdc++.h>
using namespace std;
int a[22],n,cnt,ant,is[500007],dp[1050007];
struct node
{  int num,id;
}angle[500007];
bool cmp(const node& a,const node& b)
{  return a.num<b.num;
}
int abs1(int x)
{  if(x<0)return -x;  return x;
}
void init()
{  for(int i=0;i<(1<<n);i++)  {  int ans=0,t=i;  while(t)  {  if(t&1)ans++; //这一位是1节++t=t>>1;  //右移
        }  if(ans%3==0)  {  angle[cnt].id=i;  angle[cnt++].num=ans/3;  }  if(ans==3)  {  int v[4],ans1=0,ans2=0,t=i;  while(t)  { //把二进制位是1的边对应上 if(t&1)v[ans1++]=a[ans2];  t=t>>1;  ans2++;  }  if(abs1(v[1]-v[2])<v[0]&&abs1(v[1]-v[0])<v[2]&&abs1(v[2]-v[0])<v[1])  {  //两边只差小于第三边,和会超intis[ant++]=i;  dp[i]=1;}  }  }
}
int main()
{  int T,cas=0;scanf("%d",&T);  while(T--)  {  scanf("%d",&n);  for(int i=0;i<n;i++)  scanf("%d",&a[i]);  cnt=0,ant=0;  memset(dp,0,sizeof(dp));  dp[0]=1;  init();  sort(angle,angle+cnt,cmp);//要排序 for(int i=0;i<cnt;i++)  {  node e=angle[i];  for(int j=0;j<ant;j++)  {  //&位运算if(dp[e.id]&&!(e.id&is[j]))//若e.id已存在并且  //.e.id中的边与is[j]中没有重边则dp[e.id|is[j]]=1  dp[e.id|is[j]]=1;//推到下一个
            }  }  for(int i=cnt-1;i>=0;i--)  {  if(dp[angle[i].id])  //答案要最多,从后往前遍历
            {  printf("Case #%d: %d\n",++cas,angle[i].num);  break;  }  }  }   return 0;
}

转载于:https://www.cnblogs.com/caiyishuai/p/8594864.html

校赛热身 Problem C. Sometimes Naive (状压dp)相关推荐

  1. YbtOJ#20239-[冲刺NOIP2020模拟赛Day10]连边方案【状压dp】

    正题 题目链接:https://www.ybtoj.com.cn/contest/68/problem/3 题目大意 求有多少个nnn个点mmm条边的无向图满足 有连边的点之间编号差不超过kkk 所有 ...

  2. 【2019牛客暑期多校训练营(第五场)- E】independent set 1(最大独立集,状压dp)

    题干: 链接:https://ac.nowcoder.com/acm/contest/885/E 来源:牛客网 Note: For C++ languages, the memory limit is ...

  3. nyoj1273 河南省第九届省赛_宣传墙、状压DP+矩阵幂加速

    宣传墙 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描述 ALPHA 小镇风景美丽,道路整齐,干净,到此旅游的游客特别多.CBA 镇长准备在一条道路南 面 4*N 的墙上做 ...

  4. 第九届河南省赛 宣传墙 //状压dp+矩阵快速幂+dfs

    http://nyoj.top/problem/1273 状压dp+矩阵快速幂+dfs 1273-宣传墙 内存限制:64MB 时间限制:1000ms 特判: No 通过数:19 提交数:64 难度:4 ...

  5. 糖果(2019第十届蓝桥杯省赛C++A组I题) 解题报告(状压dp) Apare_xzc

    糖果(2019第十届蓝桥杯省赛C++A组I题) 解题报告(状压dp) xzc 2019/4/5 试题 I: 糖果 时间限制: 1.0s 内存限制: 256.0MB 本题总分:25分 [问题描述]    ...

  6. 中石油训练赛 - Watch Later(状压dp)

    题目链接:点击查看 题目大意: 给出一个长度为 n 的字符串,字符串中共有 k 种不同的字符,现在问删除掉所有字符的最小操作数,对于每种字符需要确定一个先后顺序,每次需要删除掉当前所有的这种字符才能去 ...

  7. 【牛客 - 301哈尔滨理工大学软件与微电子学院第八届程序设计竞赛同步赛(高年级)】小乐乐搭积木(状压dp)

    题干: 小乐乐想要给自己搭建一个积木城堡. 积木城堡我们假设为n*m的平面矩形. 小乐乐现在手里有1*2,2*1两种地砖. 小乐乐想知道自己有多少种组合方案. 输入描述: 第一行输入整数n,m.(1& ...

  8. 【2022国赛模拟】无损加密——LGV引理、状压DP

    原创题无来源 题目描述 题解 首先把问题稍作简化,我们可以最后把行列式乘上所有 dkd_kdk​ 的积的 nnn 次方,这样前面的过程就不用考虑 dkd_kdk​ 了,暴力也只需要变动 [lk,rk] ...

  9. 【gmoj4743】【8.11模拟赛T1】积木【状压DP/暴搜】

    题目链接:积木 分析 这题数据也太水了吧我喜欢 可以直接暴力搜索每一个积木的每一个顺序的每一种放置方法. 阶乘级别的复杂度,居然能过就离谱. 正解是状压DP.f[i][j][k]f[i][j][k]f ...

最新文章

  1. reduce实现filter,map 数组扁平化等
  2. pythondocx批量提取目录及内容_一个可以选择目录生成doc目录内容的小工具(三) -python-docx...
  3. abap 取数排序之后怎么取第一行
  4. 演练 小说排行榜 0912
  5. Dynamic programming
  6. Scikit-Learn 与 TensorFlow 机器学习实用指南学习笔记 3 —— 数据获取与清洗
  7. 演示6:python音乐下载器
  8. TCP/IP、HTTP、HTTPS
  9. 【超详细】私有仓库Gitlab的安装与使用详细教程
  10. iPad、iPhone 关闭WiFi私有地址 | 设置手动DNS |以iPhone为例
  11. 小程序功能(七)电子签名
  12. R语言使用lm函数拟合线性回归模型:使用predict函数和训练好的模型进行预测推理、使用ggplot2可视化预测值和实际值的曲线进行对比分析
  13. 《wish官方运营手册》读书笔记
  14. 6位你必须知道的产品大神
  15. 《HTML5 2D游戏编程核心技术》——第1章,第1.5节开始Snail Bait游戏编程
  16. GreenDao 数据库 升级 保留之前数据
  17. 深度学习中上采样方法总结
  18. 问道手游服务器维护,《问道》手游服务器例行维护公告(2016.03.07)
  19. vscode关闭C++红色波浪线
  20. Hyperspectral Imagery Classification Based on Contrastive Learning

热门文章

  1. android 组件生命周期,Android组件化开发实践(五):组件生命周期管理
  2. spring boot @value取不到值_看看大厂如何自定义starter,还真想不到
  3. 牛客小白月赛9: D. 树上求和(dfs序+线段树)
  4. bzoj 3114: Uva12546 Lcm Pair Sum
  5. bzoj 2427: [HAOI2010]软件安装(Trajan+树形DP)
  6. bzoj 1639: [Usaco2007 Mar]Monthly Expense 月度开支(二分)
  7. postman使用教程,接口自动化测试
  8. java获取屏幕截图
  9. python基础系列教程——Python中的编码问题,中文乱码问题
  10. 数量场的等值面与矢量场的矢量线的一些基本的东西(写得不好)