博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【BZOJ4325】NOIP2015 斗地主 搜索+贪心
阅读量:4562 次
发布时间:2019-06-08

本文共 1939 字,大约阅读时间需要 6 分钟。

这个东西考试的时候一眼以为状压就压炸了考试又了一下午.....最后我打出来发现后几个点10min都过不去,我大概算了一下,可能是吧.......最后一脸懵逼的我去怂了正解,我们发现只要确定了顺子就可以贪心了,所谓贪心就是在扔相同数码牌的基础上从四带二(对),四带二,三带二,三带一,开始贪心,我们的二,一一定是它本身就是这么大,因为,如果不是的话我们只是浪费了弹药却不能得到优惠,而且由于一个四可以带两个一样的单张,我们就不会出现三拆四捡的情况,我们可以把它们看成四类物品,一类是一个的,一类是两个的......,因此我们发现只有三,四物品才可以去带,而且四可以一下带俩,三可以一下一个,我们就变成了,用两种武器去打两种小怪打得最多为最优。

别忘了剪枝。

#include 
#include
#define N 25#define r registerusing namespace std;int a[N],c[N],n,T,ans;inline int read(){ r int sum=0; r char ch=getchar(); while(ch<'0'||ch>'9')ch=getchar(); while(ch>='0'&&ch<='9') { sum=(sum<<1)+(sum<<3)+ch-'0'; ch=getchar(); } return sum;}inline int Min(int x,int y){ return x
=2)c[4]--,c[2]-=2,t++; while(c[4]&&c[1]>=2)c[4]--,c[1]-=2,t++; while(c[4]&&c[2])c[4]--,c[2]--,t++; while(c[3]&&c[2])c[3]--,c[2]--,t++; while(c[3]&&c[1])c[3]--,c[1]--,t++; return c[1]+c[2]+c[3]+c[4]+t;}void dfs(int now){ if(now>=ans)return; ans=Min(ans,now+Just()); for(r int i=1;i<=11;i++) { r int k=i; while(k<=12&&a[k]>=3)k++; k--; if(k-i+1<2)continue; for(;k-i+1>=2;k--) { for(r int j=i;j<=k;j++)a[j]-=3; dfs(now+1); for(r int j=i;j<=k;j++)a[j]+=3; } } for(r int i=1;i<=10;i++) { r int k=i; while(k<=12&&a[k]>=2)k++; k--; for(;k-i+1>=3;k--) { for(r int j=i;j<=k;j++)a[j]-=2; dfs(now+1); for(r int j=i;j<=k;j++)a[j]+=2; } } for(r int i=1;i<=8;i++) { r int k=i; while(k<=12&&a[k])k++; k--; for(;k-i+1>=5;k--) { for(r int j=i;j<=k;j++)a[j]--; dfs(now+1); for(r int j=i;j<=k;j++)a[j]++; } }}int main(){ T=read(),n=read(); while(T--) { memset(a,0,sizeof(a)); for(r int i=1,x;i<=n;i++) { scanf("%d%*d",&x); if(x==1)a[12]++; else if(x==2)a[13]++; else if(x)a[x-2]++; else a[14]++; } ans=Just(); dfs(0); printf("%d\n",ans); }}

 

转载于:https://www.cnblogs.com/TSHugh/p/7260503.html

你可能感兴趣的文章
转:使用Tengine替代Nginx作为负载均衡服务器
查看>>
css把容器级别(div...)标签固定在一个位置(在页面最右边)
查看>>
hive
查看>>
OC 反射-->动态创建类
查看>>
BZOJ 1006: [HNOI2008]神奇的国度
查看>>
Runner站立会议06
查看>>
hdu 2289 Cup
查看>>
完成评论功能
查看>>
halcon车牌的识别
查看>>
祘头君的字符(DFS)
查看>>
Xcode :Missing file warnings
查看>>
iOS: 查看 UIView 的视图树
查看>>
SQL Server 2012安装配置(Part1 )
查看>>
Http请求方法
查看>>
Android 性能优化概念(1)
查看>>
移动前端性能优化
查看>>
转 oracle创建表空间
查看>>
IIS 6.0部署ASP.NET MVC 2.0方法整理
查看>>
linux下递归列出目录下的所有文件名(不包括目录)
查看>>
底层原理
查看>>