校赛热身 Problem C. Sometimes Naive (状压dp)
- 题解:
- 列举每一种3的倍数的组合,开始先求出3条边的可行解,则
- 六条边的可行解可以由两个三条边得来。
- 详见代码解析
#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)相关推荐
- YbtOJ#20239-[冲刺NOIP2020模拟赛Day10]连边方案【状压dp】
正题 题目链接:https://www.ybtoj.com.cn/contest/68/problem/3 题目大意 求有多少个nnn个点mmm条边的无向图满足 有连边的点之间编号差不超过kkk 所有 ...
- 【2019牛客暑期多校训练营(第五场)- E】independent set 1(最大独立集,状压dp)
题干: 链接:https://ac.nowcoder.com/acm/contest/885/E 来源:牛客网 Note: For C++ languages, the memory limit is ...
- nyoj1273 河南省第九届省赛_宣传墙、状压DP+矩阵幂加速
宣传墙 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 ALPHA 小镇风景美丽,道路整齐,干净,到此旅游的游客特别多.CBA 镇长准备在一条道路南 面 4*N 的墙上做 ...
- 第九届河南省赛 宣传墙 //状压dp+矩阵快速幂+dfs
http://nyoj.top/problem/1273 状压dp+矩阵快速幂+dfs 1273-宣传墙 内存限制:64MB 时间限制:1000ms 特判: No 通过数:19 提交数:64 难度:4 ...
- 糖果(2019第十届蓝桥杯省赛C++A组I题) 解题报告(状压dp) Apare_xzc
糖果(2019第十届蓝桥杯省赛C++A组I题) 解题报告(状压dp) xzc 2019/4/5 试题 I: 糖果 时间限制: 1.0s 内存限制: 256.0MB 本题总分:25分 [问题描述] ...
- 中石油训练赛 - Watch Later(状压dp)
题目链接:点击查看 题目大意: 给出一个长度为 n 的字符串,字符串中共有 k 种不同的字符,现在问删除掉所有字符的最小操作数,对于每种字符需要确定一个先后顺序,每次需要删除掉当前所有的这种字符才能去 ...
- 【牛客 - 301哈尔滨理工大学软件与微电子学院第八届程序设计竞赛同步赛(高年级)】小乐乐搭积木(状压dp)
题干: 小乐乐想要给自己搭建一个积木城堡. 积木城堡我们假设为n*m的平面矩形. 小乐乐现在手里有1*2,2*1两种地砖. 小乐乐想知道自己有多少种组合方案. 输入描述: 第一行输入整数n,m.(1& ...
- 【2022国赛模拟】无损加密——LGV引理、状压DP
原创题无来源 题目描述 题解 首先把问题稍作简化,我们可以最后把行列式乘上所有 dkd_kdk 的积的 nnn 次方,这样前面的过程就不用考虑 dkd_kdk 了,暴力也只需要变动 [lk,rk] ...
- 【gmoj4743】【8.11模拟赛T1】积木【状压DP/暴搜】
题目链接:积木 分析 这题数据也太水了吧我喜欢 可以直接暴力搜索每一个积木的每一个顺序的每一种放置方法. 阶乘级别的复杂度,居然能过就离谱. 正解是状压DP.f[i][j][k]f[i][j][k]f ...
最新文章
- reduce实现filter,map 数组扁平化等
- pythondocx批量提取目录及内容_一个可以选择目录生成doc目录内容的小工具(三) -python-docx...
- abap 取数排序之后怎么取第一行
- 演练 小说排行榜 0912
- Dynamic programming
- Scikit-Learn 与 TensorFlow 机器学习实用指南学习笔记 3 —— 数据获取与清洗
- 演示6:python音乐下载器
- TCP/IP、HTTP、HTTPS
- 【超详细】私有仓库Gitlab的安装与使用详细教程
- iPad、iPhone 关闭WiFi私有地址 | 设置手动DNS |以iPhone为例
- 小程序功能(七)电子签名
- R语言使用lm函数拟合线性回归模型:使用predict函数和训练好的模型进行预测推理、使用ggplot2可视化预测值和实际值的曲线进行对比分析
- 《wish官方运营手册》读书笔记
- 6位你必须知道的产品大神
- 《HTML5 2D游戏编程核心技术》——第1章,第1.5节开始Snail Bait游戏编程
- GreenDao 数据库 升级 保留之前数据
- 深度学习中上采样方法总结
- 问道手游服务器维护,《问道》手游服务器例行维护公告(2016.03.07)
- vscode关闭C++红色波浪线
- Hyperspectral Imagery Classification Based on Contrastive Learning
热门文章
- android 组件生命周期,Android组件化开发实践(五):组件生命周期管理
- spring boot @value取不到值_看看大厂如何自定义starter,还真想不到
- 牛客小白月赛9: D. 树上求和(dfs序+线段树)
- bzoj 3114: Uva12546 Lcm Pair Sum
- bzoj 2427: [HAOI2010]软件安装(Trajan+树形DP)
- bzoj 1639: [Usaco2007 Mar]Monthly Expense 月度开支(二分)
- postman使用教程,接口自动化测试
- java获取屏幕截图
- python基础系列教程——Python中的编码问题,中文乱码问题
- 数量场的等值面与矢量场的矢量线的一些基本的东西(写得不好)