BZOJ1306: [CQOI2009]match循环赛
2024-08-31 14:58:23
【传送门:BZOJ1306】
简要题意:
有n个队伍,每个队伍都要和其他队伍比一场,赢了的队得3分,输了的队不得分,打平两队各得一分,给出每个队伍的得分,求出对战方案数
题解:
DFS暴搜!!一眼就觉得暴搜,但是时限尴尬,加了些剪枝,10s压线,真的幸运
剪枝:
1.如果当前队伍所搜索到的结果得分大于它自己的得分就退出
2.如果当前队伍全赢仍未搜索到的所有队伍都不能达到它自己的得分就退出
就这样,靠着RP,压着时限,AC(感人)
参考代码:
#include<cstdio>
#include<cstdlib>
#include<algorithm>
#include<cmath>
#include<cstring>
using namespace std;
int a[],b[],n,ans;
void dfs(int x,int y)
{
if(b[x]>a[x]) return ;
if(b[x]+(n-y+)*<a[x]) return ;
if(x==n)
{
ans++;
return ;
}
if(y==n)
{
int t=a[x]-b[x];
int dd=;
if(t==) return ;
if(t==) dd=;
if(t==) dd=;
if(t==) dd=;
b[y]+=dd;
dfs(x+,x+);
b[y]-=dd;
}
else
{
b[x]+=;dfs(x,y+);b[x]-=;
b[y]+=;dfs(x,y+);b[y]-=;
b[x]++;b[y]++;dfs(x,y+);b[x]--; b[y]--;
}
}
int main()
{
scanf("%d",&n);
for(int i=;i<=n;i++) scanf("%d",&a[i]);
dfs(,);
printf("%d\n",ans);
return ;
}
最新文章
- MVC默认路由实现分页-PagerExtend.dll
- 【codeforces 749E】 Inversions After Shuffle
- javascript 中this详解
- C# INotifyPropertyChanged
- Js全选,插入实现
- 华为OJ:素数对个数
- TCP三次握手和四次挥手协议
- 李洪强iOS开发之零基础学习iOS开发【02-C语言】03-关键字、标识符、注释
- eclipse安装egit上传和clone项目到github
- SharePoint开发
- Struts2-在js中使用struts2标签
- JQuery案例二:实现全选、全不选和反选
- 安装pygame出现is not a supported wheel on this platform解决办法
- Objective-C Core Animation深入理解
- 为单实例数据库配置ASM
- Logstash 基础入门
- html table 点击跳转
- passport登录问题:passport.use 方法没有被调用
- 反面教材 构造构造 json 数据
- HDU 3820 Golden Eggs