题意与分析

时隔一个月之后来补题。说写掉的肯定会写掉。

题意是这样的:给1~9这些数字,每个数字有\(X_i\)个,问总共能凑成多少个不同的等式\(A+B=C\)(\(A,B,C\)均为1位,\(1+2=3\)和\(2+1=3\)视为不同等式)?

这题的搜索稍微有一些技巧:先暴力再搜索,而不是起手就搜索。怎么个暴力呢?把所有能够构成\(A+B=C\)的情况先全部穷举出来,然后看先有的这些bricks的数目能不能够实现这些情况——这就是基础搜索了。两种情况:a)当前情形能够用,答案+1;b)当前情况无效,遍历下一个,答案不变。

然后就没有然后了,过了.jpg

场上竟然队伍没几个写这个的。。。被带榜了啊

代码

  1. /*
  2. * Filename: hdu5937.cpp
  3. * Date: 2018-11-11
  4. */
  5. #include <bits/stdc++.h>
  6. #define INF 0x3f3f3f3f
  7. #define PB emplace_back
  8. #define MP make_pair
  9. #define fi first
  10. #define se second
  11. #define rep(i,a,b) for(repType i=(a); i<=(b); ++i)
  12. #define per(i,a,b) for(repType i=(a); i>=(b); --i)
  13. #define ZERO(x) memset(x, 0, sizeof(x))
  14. #define MS(x,y) memset(x, y, sizeof(x))
  15. #define ALL(x) (x).begin(), (x).end()
  16. #define QUICKIO \
  17. ios::sync_with_stdio(false); \
  18. cin.tie(0); \
  19. cout.tie(0);
  20. #define DEBUG(...) fprintf(stderr, __VA_ARGS__), fflush(stderr)
  21. using namespace std;
  22. using pi=pair<int,int>;
  23. using repType=int;
  24. using ll=long long;
  25. using ld=long double;
  26. using ull=unsigned long long;
  27. struct Node
  28. {
  29. int x,y,z;
  30. Node(int _x, int _y, int _z):
  31. x(_x), y(_y), z(_z) {}
  32. };
  33. vector<Node> vec;
  34. void init()
  35. {
  36. for(int i=1;i<=8;++i)
  37. for(int j=1;i+j<=9;++j)
  38. vec.PB(i,j,i+j);
  39. }
  40. int brick[15],ans=0;
  41. void dfs(int pnt, int nans)
  42. {
  43. if(pnt==vec.size()) { ans=max(nans, ans); return; }
  44. if(nans+vec.size()-pnt<=ans) return;
  45. int x=vec[pnt].x,
  46. y=vec[pnt].y,
  47. z=vec[pnt].z;
  48. if(brick[x]>0 && brick[y]>0 && brick[z]>0)
  49. {
  50. brick[x]--; brick[y]--; brick[z]--;
  51. if(brick[x]>=0 && brick[y]>=0 && brick[z]>=0) dfs(pnt+1, nans+1);
  52. brick[x]++; brick[y]++; brick[z]++;
  53. }
  54. dfs(pnt+1,nans); // This is important!
  55. }
  56. int
  57. main()
  58. {
  59. init(); //cout<<vec.size()<<endl;
  60. int T; cin>>T;
  61. rep(kase,1,T)
  62. {
  63. rep(i,1,9) cin>>brick[i];
  64. ans=0;
  65. dfs(0,0);
  66. cout<<"Case #"<<kase<<": "<<ans<<endl;
  67. }
  68. return 0;
  69. }

「日常训练」Equation(HDU-5937)的更多相关文章

  1. 「日常训练」ZgukistringZ(Codeforces Round #307 Div. 2 B)

    题意与分析(CodeForces 551B) 这他妈哪里是日常训练,这是日常弟中弟. 题意是这样的,给出一个字符串A,再给出两个字符串B,C,求A中任意量字符交换后(不限制次数)能够得到的使B,C作为 ...

  2. 「日常训练」 神、上帝以及老天爷 (HDU 2048)

    题意 数论中的错排问题.记错排为Dn" role="presentation">DnDn,求Dnn!" role="presentation&q ...

  3. 「日常训练」 不容易系列之(3)—— LELE的RPG难题 (HDU 2045)

    题目简述 有排成一行的n" role="presentation">nn个方格,用红(Red).粉(Pink).绿(Green)三色涂每个格子,每格涂一色,要求任何 ...

  4. 「日常训练」 Fire!(UVA-11624)

    与其说是训练不如说是重温.重新写了Java版本的代码. import java.util.*; import java.math.*; import java.io.BufferedInputStre ...

  5. 「日常训练」COMMON 约数研究(HYSBZ-1968)

    题意与分析 感谢https://www.cnblogs.com/Leohh/p/7512960.html的题解.这题话说原来不在我的训练范围,正好有个同学问我,我就拿来做做.数学果然不是我擅长的啊,这 ...

  6. 「日常训练」Mike and Feet(Codeforces Round #305 Div. 2 D)

    题意 (Codeforces 548D) 对一个有$n$个数的数列,我们要求其连续$x(1\le x\le n)$(对于每个$x$,这样的连续group有若干个)的最小数的最大值. 分析 这是一道用了 ...

  7. 「日常训练」 Mike and Fun (CFR305D2B)

    题意(CodeForces 548B) 每次对01矩阵中的一位取反,问每次操作后,单列中最长连续1的长度. 分析 非常非常简单,但是我当时训练的时候WA了四次...无力吐槽了,人间 不值得.jpg 代 ...

  8. 「日常训练」Common Subexpression Elimination(UVa-12219)

    今天做的题目就是抱佛脚2333 懂的都懂. 这条题目干了好几天,最后还是参考别人的代码敲出来了,但是自己独立思考了两天多,还是有收获的. 思路分析 做这条题我是先按照之前的那条题目(The SetSt ...

  9. 「日常训练」Magic Stones(CodeForces-1110E)

    题意 给定两个数组c和t,可以对c数组中的任何元素变换\(c_i\)​成\(c_{i+1}+c_{i-1}-c_i\)​,问c数组在若干次变换后能否变换成t数组. 分析 这种魔法题目我是同样的没做过. ...

随机推荐

  1. [19/04/08-星期一] 多线程_线程的优先级(Priority) 和 守护线程(Daemon)

    一.概念 1. 处于就绪状态的线程,会进入“就绪队列”等待JVM来挑选. 2. 线程的优先级用数字表示,范围从1到10,一个线程的缺省优先级是5. 3. 使用下列方法获得或设置线程对象的优先级. in ...

  2. 敏捷开发系列之旅 第五站(不一样的RUP统一软件开发过程)

    概述   RUP,统一软件开发过程,是一个面向对象且基于网络的程序开发方法论.根据Rational的说法,RUP就好像一个在线的指导者,他可以为所有方面和层次的程序开发提供指导方针.模板以及事例支持. ...

  3. Andorid进阶7—— Ant自动编译打包&发布 android项目

    http://www.cnblogs.com/tt_mc/p/3891546.html Eclipse用起来虽然方便,但是编译打包android项目还是比较慢,尤其将应用打包发布到各个渠道时,用Ecl ...

  4. MyBatis之Mapper XML 文件详解(三)-Result Maps

    resultMap 元素是 MyBatis 中最重要最强大的元素.它就是让你远离 90%的需要从结果 集中取出数据的 JDBC 代码的那个东西, 而且在一些情形下允许你做一些 JDBC 不支持的事 情 ...

  5. 【HDOJ 1285】确定比赛名次(拓扑排序+优先队列)

    Problem Description有N个比赛队(1<=N<=500),编号依次为1,2,3,....,N进行比赛,比赛结束后,裁判委员会要将所有参赛队伍从前往后依次排名,但现在裁判委员 ...

  6. Spring总结以及在面试中的一些问题

    Spring总结以及在面试中的一些问题. 1.谈谈你对spring IOC和DI的理解,它们有什么区别? IoC Inverse of Control 反转控制的概念,就是将原本在程序中手动创建Use ...

  7. 关于windows下安装mysql数据库出现中文乱码的问题

    首先需要在自己安装的mysql路径下新建一个my.ini文件,如下: 然后在my.ini文件中输入一下内容,主要控制编码问题的为红框部分,如下: 为了方便大家使用,可以复制以下代码: [WinMySQ ...

  8. 【Spark】源码分析之RDD的生成及stage的切分

    一.概述 Spark源码整体的逻辑(spark1.3.1): 从saveAsTextFile()方法入手 -->saveAsTextFile()  --> saveAsHadoopFile ...

  9. sourcetree .git 强制忽略指定文件不提交

    在公司写项目,大部分都会用到 svn 或 git 提交代码到服务器.我们公司用的GIT,每个程序员有自己的独立分支,各写各的代码互不冲突,最终合并到主分支再解决相同代码冲突问题.这时候会遇到一些配置文 ...

  10. drawImage画本地资源,在真机无法显示

    把图片的路径改成本地的绝对路径