JZOJ2935. 【USACO Open 2012 Gold Division】Balanced Cow Subsets
来源:互联网 发布:摩托罗拉gp328编程 编辑:程序博客网 时间:2024/06/01 08:30
题目大意
给
求有多少种选数的方案。
Data Constraint
题解
这题用到了
先将
SRC
#include<cstdio>#include<cstdlib>#include<cstring>#include<iostream>#include<algorithm>using namespace std ;#define N 20 + 10#define M 2000 + 10#define K 60000 + 10typedef long long ll ;struct Stype { ll x ; ll s ;} s1[K] , s2[K] ;bool vis[M][M] ;ll a[N] ;ll c[K] , d[K] ;int n , tot1 , tot2 , Sign = 0 ;ll ans ;bool cmp( Stype a , Stype b ) { return a.s < b.s ; }void DFS( int k , int m , ll sum , ll sta ) { if ( k > m ) { if ( !Sign ) s1[++tot1].x = sta , s1[tot1].s = sum ; else s2[++tot2].x = sta , s2[tot2].s = sum ; return ; } for (int c = -1 ; c <= 1 ; c ++ ) DFS( k + 1 , m , sum + a[k] * c , sta | ((ll)(c != 0) << (k - Sign - 1)) ) ;}void Calc() { for (int i = 1 ; i <= c[0] ; i ++ ) { for (int j = 1 ; j <= d[0] ; j ++ ) { if ( vis[c[i]][d[j]] ) continue ; vis[c[i]][d[j]] = 1 ; ans ++ ; } }}int main() { scanf( "%d" , &n ) ; for (int i = 1 ; i <= n ; i ++ ) scanf( "%lld" , &a[i] ) ; DFS( 1 , n / 2 , 0 , 0 ) ; Sign = n / 2 ; DFS( n / 2 + 1 , n , 0 , 0 ) ; sort( s1 + 1 , s1 + tot1 + 1 , cmp ) ; sort( s2 + 1 , s2 + tot2 + 1 , cmp ) ; if ( s1[1].s < s2[1].s ) swap( s1 , s2 ) , swap( tot1 , tot2 ) ; int j = 1 ; vis[0][0] = 1 ; for (int i = 1 ; i <= tot1 && j <= tot2 ; ) { while ( s1[i].s > s2[j].s && j <= tot2 ) j ++ ; if ( j > tot2 ) break ; if ( s1[i].s < s2[j].s ) { i ++ ; continue ; } c[0] = d[0] = 1 ; c[1] = s1[i].x ; d[1] = s2[j].x ; int k ; for (k = i + 1 ; k <= tot1 ; k ++ ) { if ( s1[k].s != s1[i].s ) { k -- ; break ; } c[++c[0]] = s1[k].x ; } i = k + 1 ; for (k = j + 1 ; k <= tot2 ; k ++ ) { if ( s2[k].s != s2[j].s ) { k -- ; break ; } d[++d[0]] = s2[k].x ; } j = k + 1 ; Calc() ; } printf( "%lld\n" , ans ) ; return 0 ;}
以上.
2 0
- JZOJ2935. 【USACO Open 2012 Gold Division】Balanced Cow Subsets
- USACO2011Open Gold Balanced Cow Subsets
- [USACO 2012OPEN] Balanced Cow Subsets(meet in the middle + DFS)
- USACO 2012 January Contest, Gold Division Solution
- USACO 2015 US OPEN CONTEST,Gold Division Solution
- [Meet In Middle] BZOJ 2679 [Usaco2012 Open]Balanced Cow Subsets
- bzoj 2679: [Usaco2012 Open]Balanced Cow Subsets 折半搜索
- bzoj2679 [Usaco2012 Open]Balanced Cow Subsets折半搜索
- BZOJ 2679: [Usaco2012 Open]Balanced Cow Subsets meet_in_the_middle / 折半搜索
- 【折半搜索】BZOJ2679(Usaco2012 Open)[Balanced Cow Subsets]题解
- 【BZOJ】2679 [Usaco2012 Open]Balanced Cow Subsets 折半搜索+状压
- 【USACO 2008 Open Gold】 3.Cow Neighborhoods 平衡树、并查集
- bzoj3939 【USACO 2015 FEB GOLD 】cow hopscotch
- USACO 2015 February CONTEST,Silver&Gold Division Solution
- USACO 2009 Open Gold 2.Work Scheduling
- 【USACO 2011 Open Gold】修剪草坪(BSOI2940)
- USACO 2017 January Contest, Gold Problem 1. Balanced Photo
- 【POJ3613】【USACO 2007 Nov Gold】 2.Cow Relays 矩阵乘法?
- 第九周项目二-我的数组类
- Jmeter+Ant快速构建
- Qt5+MinGW 调用ffmpeg
- …… are only available on JDK 1.5 and higher 错误(spring 的jdk版本检测在jdk 8下的修订)
- InvocationHandler
- JZOJ2935. 【USACO Open 2012 Gold Division】Balanced Cow Subsets
- 判断网络的连接
- DT大数据梦工厂Spark定制班笔记(013)
- Android基础之十八显示gif动画,动态图片
- c++课后作业
- 自定义控件三部曲之绘图篇(六)——Path之贝赛尔曲线和手势轨迹、水波纹效果
- hdu 5700 区间交
- C#下使用protobuf(Google Protocol Buffers)
- 寻找下一个结点