ZOJ3180 Number Game

要点:

判断后三个数字能否通过上述的变换过程 推出前三个数字 ,我们可以逆向思维考虑 也就是逆着推回去

如果符合后三个数字 或其变换一次的数字(即符合其中一种组合形式) ,则输出yes

其中重要的点: 要将这些数字从小到大排序,便于比较判断, 前三个数字即使不断减小的但也不能小于或等于0

给出代码如下:(有部分注释)

  1. #include<iostream>
  2. #include<algorithm>
  3. using namespace std;
  4. const int N = ;
  5.  
  6. int main()
  7. {
  8. int a[N], b[N];
  9. int t;
  10. cin >> t;
  11. while(t--)
  12. {
  13. for(int i = ; i < ; i++)
  14. {
  15. cin >> a[i];
  16. }
  17. for(int i = ; i < ; i++)
  18. {
  19. cin >> b[i];
  20. }
  21.  
  22. int dp[N][N];
  23.  
  24. dp[][] = b[];
  25. dp[][] = b[];
  26. dp[][] = b[];
  27.  
  28. dp[][] = b[] + b[] - ;
  29. dp[][] = b[];
  30. dp[][] = b[];
  31.  
  32. dp[][] = b[];
  33. dp[][] = b[] + b[] - ;
  34. dp[][] = b[];
  35.  
  36. dp[][] = b[];
  37. dp[][] = b[];
  38. dp[][] = b[] + b[] - ;
  39.  
  40. for(int i = ; i < ; i++)
  41. {
  42. sort(dp[i], dp[i] + );//将每种情况按从小到大排序
  43. }
  44. while()//因为不知道要将前三个数字变换多少次才能推回到原来的数字
  45. {
  46. int flag ;
  47. sort(a, a+);//每次都将这三个数按从小到大排序 ,便于比较
  48. for(int i = ; i < ; i++)
  49. {
  50. flag = ;
  51. for(int j = ; j < ; j++)
  52. {
  53. if(dp[i][j] != a[j])
  54. {
  55. flag = ;
  56. }
  57. }
  58. if(flag)
  59. {
  60. break;
  61. }
  62. }
  63. if(flag) // 只有三个数符合dp中任何一种情况时,才能确保输出yes;
  64. {
  65. cout << "Yes" << endl;
  66. break;
  67. }
  68.  
  69. if(a[] - a[] + == a[])// 陷入死循环, 并且这三个数不符合dp的任何一种情况
  70. {
  71. cout << "No" << endl;
  72. break;
  73. }
  74. else
  75. {
  76. a[] = a[] - a[] + ;
  77. flag = ;
  78. for(int i = ; i < ; i++)//逐渐逆推回去的过程中,还没到符合情况就已经有负数出现
  79. {
  80. if(a[i] <= )
  81. {
  82. flag = ;
  83. }
  84. }
  85. if(flag == )
  86. {
  87. cout <<"No" << endl;
  88. break;
  89. }
  90. }
  91. }
  92. }
  93. return ;
  94. }

ZOJ3180 Number Game的更多相关文章

  1. JavaScript Math和Number对象

    目录 1. Math 对象:数学对象,提供对数据的数学计算.如:获取绝对值.向上取整等.无构造函数,无法被初始化,只提供静态属性和方法. 2. Number 对象 :Js中提供数字的对象.包含整数.浮 ...

  2. Harmonic Number(调和级数+欧拉常数)

    题意:求f(n)=1/1+1/2+1/3+1/4-1/n   (1 ≤ n ≤ 108).,精确到10-8    (原题在文末) 知识点:      调和级数(即f(n))至今没有一个完全正确的公式, ...

  3. Java 特定规则排序-LeetCode 179 Largest Number

    Given a list of non negative integers, arrange them such that they form the largest number. For exam ...

  4. Eclipse "Unable to install breakpoint due to missing line number attributes..."

    Eclipse 无法找到 该 断点,原因是编译时,字节码改变了,导致eclipse无法读取对应的行了 1.ANT编译的class Eclipse不认,因为eclipse也会编译class.怎么让它们统 ...

  5. 移除HTML5 input在type="number"时的上下小箭头

    /*移除HTML5 input在type="number"时的上下小箭头*/ input::-webkit-outer-spin-button, input::-webkit-in ...

  6. iOS---The maximum number of apps for free development profiles has been reached.

    真机调试免费App ID出现的问题The maximum number of apps for free development profiles has been reached.免费应用程序调试最 ...

  7. 有理数的稠密性(The rational points are dense on the number axis.)

    每一个实数都能用有理数去逼近到任意精确的程度,这就是有理数的稠密性.The rational points are dense on the number axis.

  8. [LeetCode] Minimum Number of Arrows to Burst Balloons 最少数量的箭引爆气球

    There are a number of spherical balloons spread in two-dimensional space. For each balloon, provided ...

  9. [LeetCode] Number of Boomerangs 回旋镖的数量

    Given n points in the plane that are all pairwise distinct, a "boomerang" is a tuple of po ...

随机推荐

  1. 【Coursera】Security Introduction -Summary

    对这门课程的安全部分进行一个小结. 往期随笔 第八周第一节 第八周第二节 第九周第一节 第九周第二节 前言:为什么互联网要提及安全 因为security牵扯到我们每一个人,有人每时每刻都想着要偷取别人 ...

  2. Django部署生产环境,静态文件不能访问404,以及图片不能访问403

    部署环境的搭建请看此博客https://blog.csdn.net/anifans9350/article/details/80145535 查看nginx.conf 文件, nginx文件(etc/ ...

  3. 最大容积 Container With Most Water

    2018-07-31 17:28:42 问题描述: 问题求解: 很容易想到的是Brute Force,也就是枚举所有可能的pairs,这种解法的时间复杂度为O(n ^ 2),由于本题的数据规模较大,会 ...

  4. C# 中的集合(Array/ArrayList/List<T>/HashTable/Dictionary)

    int [] numbers = new int[5]; // 长度为5,元素类型为 int. string[,] names = new string[5,4]; // 5*4 的二维数组 byte ...

  5. [Java学习] Java继承的概念与实现

    继承是类与类之间的关系,是一个很简单很直观的概念,与现实世界中的继承(例如儿子继承父亲财产)类似. 继承可以理解为一个类从另一个类获取方法和属性的过程.如果类B继承于类A,那么B就拥有A的方法和属性. ...

  6. Android动画(Animations)

    动画类型Android的animation由四种类型组成 XML中 alpha  : 渐变透明度动画效果 scale  :渐变尺寸伸缩动画效果 translate  : 画面转换位置移动动画效果 ro ...

  7. UVA-10118 Free Candies (DP、记忆化搜索)

    题目大意:有4堆糖果,每堆有n个,有一只最多能容5个糖果的篮子.现在,要把糖果放到篮子里,如果篮子中有相同颜色的糖果,放的人就可以拿到自己的口袋.如果放的人足够聪明,问他最多能得到多少对糖果. 题目分 ...

  8. GDI+ DrawString字间距问题

    ///   <summary> ///   绘制任意间距文字 /// </summary> ///   <param   name= "text "& ...

  9. asp.net GridView多行表头的实现,合并表头

    protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == Da ...

  10. Spring boot 嵌入的tomcat不能启动: Unregistering JMX-exposed beans on shutdown

    原因是:没有引入tomcat依赖包 <dependency> <groupId>org.springframework.boot</groupId> <art ...