bzoj1306: [CQOI2009]match循环赛
来源:互联网 发布:淘宝分销发货 编辑:程序博客网 时间:2024/05/29 15:50
传送门
显然是爆搜+O(玄学)优化。
剪枝1:如果全取3或全取0仍不可行退出。
剪枝2:如果还有n个队没有比过,分数差n*3-1,退出。
然后就过了呀。
#include<cstring>#include<cstdio>#include<iostream>using namespace std;const int f[]={3,1,0,0};int a[9],b[9],n,ans;inline void dfs(int x,int y){ if (b[x]>a[x]) return; if (b[x]+(n-y+1)*3<a[x]) return; if (x==n){ans++; return;} if (y==n){ int t=a[x]-b[x]; if (t==2) return; b[y]+=f[t]; dfs(x+1,x+2); b[y]-=f[t]; } else{ b[x]+=3; dfs(x,y+1); b[x]-=3; b[y]+=3; dfs(x,y+1); b[y]-=3; b[x]++; b[y]++; dfs(x,y+1); b[x]--; b[y]--; }}int main(){ scanf("%d",&n); for (int i=1;i<=n;i++) scanf("%d",&a[i]); dfs(1,2); printf("%d",ans); return 0;}
0 0
- bzoj1306: [CQOI2009]match循环赛
- bzoj1306 [CQOI2009]match循环赛
- 1306: [CQOI2009]match循环赛
- BZOJ 1306: [CQOI2009]match循环赛
- bzoj 1306 [CQOI2009]match循环赛
- BZOJ P1306 [CQOI2009]match循环赛
- BZOJ 1306: [CQOI2009]match循环赛 爆搜,剪枝
- 【BZOJ】【P1306】【CQOI2009】【match循环赛】【题解】【搜索+剪枝】
- [CQOI2009] 循环赛 - 暴力出奇迹
- bzoj1306
- JZOJ 4.15 1110——CQOI2009循环赛【dfs】【hash判重】
- 循环赛
- 【CQOI2009】跳舞
- 【CQOI2009】中位数
- CQOI2009中位数
- 循环赛问题
- 循环赛算法
- 循环赛日程表
- 子树
- C++虚函数与多态性
- 在Fragment中点击按钮关闭当前的Fragment返回上一个Fragment该如何实现
- 关于ssm框架加入json的注意的问题
- Nginx+Keepalived实现站点高可用
- bzoj1306: [CQOI2009]match循环赛
- 栈的基本操作【严蔚敏】
- 隐含强制类型转换——从变量说起
- JDK8 从永久代到元空间
- 在ubuntu 16.04上安装jdk
- Nginx配置ssl加密(单双向认证、部分https)
- 线程中断
- GetFileAttributes详解
- openCV编程思想总结(1)