题解其实网上有
突然有点感想
为什么可以用搜索或状压,因为方案数很有限,它要求每种方案不同就意味着搜索的次数也一定,所以现在就应该坚定往这方面想,找部分方案的贪心。这和上一题一样,都是先暴力,后面处理。

#include<bits/stdc++.h>
using namespace std;
#define sz(X) ((int)X.size())
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
typedef long long ll;
const int INF = 0x3f3f3f3f;
const int N = 1e5+5; int num[15];
int X[15], Y[15], Z[15];
int ans, tmp;
int ok(int x, int nu) {
if(nu == 0) return 1;
else if(X[x] == Y[x]) {
if(num[X[x]] >= 2*nu && num[Z[x]] >= nu) return 1;
}else if(num[X[x]] >= nu && num[Y[x]] >= nu && num[Z[x]] >= nu) return 1;
return 0;
}
int cal(){
// printf("%d: ",tmp); for(int i = 1; i <= 9; ++i) printf("%d ",num[i]);
int ret = 0;
int pre[10];
for(int i = 1; i <= 9; ++i) pre[i] = num[i];
for(int i = 2; i <= 8; ++i) {
int mi = min(2, min( num[1], min(num[i], num[i+1]) ) );
num[1] -= mi; num[i] -= mi; num[i+1] -= mi; ret += mi;
if(num[1] == 0) break;
}
for(int i = 1; i <= 9; ++i) num[i] = pre[i];
return ret; }
void dfs(int x, int pr) {
if(pr) {
int tt = cal();
tmp += tt;
ans = max(tmp, ans);
tmp -= tt;
}
if(x > 13) return;
int ed;
if(x < 10) ed = 2; else ed = 1;
for(int i = 0; i <= ed; ++i) {
if(ok(x,i)) {
num[X[x]] -= i; num[Y[x]] -= i; num[Z[x]] -= i; tmp += i;
dfs(x+1, i);
num[X[x]] += i; num[Y[x]] += i; num[Z[x]] += i; tmp -= i;
}
}
}
int main(){
int cc = 0;
for(int i = 2; i <= 9; ++i)
for(int j = i+1; j <= 9; ++j) {
if(i+j <= 9) {
X[++cc] = i; Y[cc] = j; Z[cc] = i+j;
}
}
for(int i = 10; i <= 13; ++i) {
X[i] = i-9; Y[i] = i-9; Z[i] = Y[i]+X[i];
} int _; scanf("%d",&_);
for(int cas=1; cas<=_; ++cas) {
for(int i = 1; i <= 9; ++i) scanf("%d",&num[i]);
ans = cal(); tmp = 0;
dfs(1, 0);
printf("Case #%d: %d\n",cas,ans);
}
return 0;
}

hdu5937 Equation的更多相关文章

  1. HDU5937 Equation(DFS + 剪枝)

    题目 Source http://acm.hdu.edu.cn/showproblem.php?pid=5937 Description Little Ruins is a studious boy, ...

  2. 「日常训练」Equation(HDU-5937)

    题意与分析 时隔一个月之后来补题.说写掉的肯定会写掉. 题意是这样的:给1~9这些数字,每个数字有\(X_i\)个,问总共能凑成多少个不同的等式\(A+B=C\)(\(A,B,C\)均为1位,\(1+ ...

  3. CodeForces460B. Little Dima and Equation

    B. Little Dima and Equation time limit per test 1 second memory limit per test 256 megabytes input s ...

  4. ACM: FZU 2102 Solve equation - 手速题

     FZU 2102   Solve equation Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & ...

  5. HDU 5937 Equation

    题意: 有1~9数字各有a1, a2, -, a9个, 有无穷多的+和=. 问只用这些数字, 最多能组成多少个不同的等式x+y=z, 其中x,y,z∈[1,9]. 等式中只要有一个数字不一样 就是不一 ...

  6. coursera机器学习笔记-多元线性回归,normal equation

    #对coursera上Andrew Ng老师开的机器学习课程的笔记和心得: #注:此笔记是我自己认为本节课里比较重要.难理解或容易忘记的内容并做了些补充,并非是课堂详细笔记和要点: #标记为<补 ...

  7. CF460B Little Dima and Equation (水题?

    Codeforces Round #262 (Div. 2) B B - Little Dima and Equation B. Little Dima and Equation time limit ...

  8. Linear regression with multiple variables(多特征的线型回归)算法实例_梯度下降解法(Gradient DesentMulti)以及正规方程解法(Normal Equation)

    ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, , ...

  9. ACM:HDU 2199 Can you solve this equation? 解题报告 -二分、三分

    Can you solve this equation? Time Limit: / MS (Java/Others) Memory Limit: / K (Java/Others) Total Su ...

随机推荐

  1. 洛谷 [P2483] [模板] k短路

    人生中的第一道黑题... 其实就是k短路模板 #include <iostream> #include <cstdio> #include <cstring> #i ...

  2. Uva 11077 Find the Permutations [置换群 DP]

    题意: 给定$n$和$k$,问有多少排列交换$k$次能变成升序 $n \le 21$ $uva$貌似挂掉了$vjudge$上一直排队 从某个排列到$1,2,...,n$和从$1,2,...,n$到某个 ...

  3. python爬虫(5)——正则表达式(二)

    前一篇文章,我们使用re模块来匹配了一个长的字符串其中的部分内容.下面我们接着来作匹配"1305101765@qq.com   advantage  314159265358 1892673 ...

  4. Asp.net core Razor 页面

    创建asp.net core 空项目->MyWeb 修改Startup.cs启动文件添加Razor页面支持: public void ConfigureServices(IServiceColl ...

  5. mysql 5.7 支持json格式

    1.JSON格式的支持:mysql> create table user ( uid int auto_increment,      -> data json,primary key(u ...

  6. js小技巧:数组去重

    JavaScript 数组中去除重复的数据 var arr = [1, 2, 2, 3, '1', null, 'a', 'b', 'a']; var t = {}; var result = arr ...

  7. [Python Study Notes]列表操作

    列表操作 a.切片 >>> names = ["Alex","Tenglan","Eric","Rain&quo ...

  8. Netty的常用概念

    我们先来看一段代码: // Configure the server. EventLoopGroup bossGroup = new NioEventLoopGroup(1); EventLoopGr ...

  9. HTML/CSS 常用单词整理

    页面布局(layout) header 头部/页眉: index 首页/索引: logo 标志: nav/sub_nav 导航/子导航: banner 横幅广告: main/content 主体/内容 ...

  10. 2018/3/2晚11点30分写的程序(C++)

    程序目标:输入一个字符串,竖向输出该字符串.使用string和动态分配内存机制.代码如下: #include<iostream>#include "stdafx.h"# ...