zoukankan      html  css  js  c++  java
  • 新疆大学ACM-ICPC程序设计竞赛五月月赛(同步赛)-B-杨老师游戏

    1. 题目链接:杨老师游戏
    2. 题目分析:将9个数字分成3块,分块枚举,话句话说,9个数字的所有排列组合,如果满足N=a*b-c就是一个答案,暴力枚举Orz.
    3. 代码如下: 
       1 #include<iostream>
       2 using namespace std;
       3 bool flag[10];
       4 int que[10];
       5 int ans, num;
       6 void check() {
       7     int Li, Lk, Lj, di, dj, i;
       8     for (di = 1; di < 9; ++di) {
       9         Li = 0;
      10         for (i = 1; i <= di; ++i) {
      11             Li = Li * 10 + que[i];
      12         }
      13         for (dj = 1; di + dj < 9; ++dj) {
      14             Lj = 0;
      15             for (i = di + 1; i <= di + dj; ++i) {
      16                 Lj = Lj * 10 + que[i];
      17             }
      18             Lk = 0;
      19             for (i = di + dj + 1; i < 10; ++i) {
      20                 Lk = Lk * 10 + que[i];
      21             }
      22             if (Li * Lj - Lk == num) {
      23                 ++ans;
      24             }
      25         }
      26     }
      27 }
      28 void dfs(int number) {
      29     if (number > 9) {
      30         check();
      31     }
      32     int i;
      33     for (i = 1; i < 10; ++i) {
      34         if (!flag[i]) {
      35             flag[i] = true;
      36             que[number] = i;
      37             dfs(number + 1);
      38             flag[i] = false;
      39         }
      40     }
      41 }
      42 int main()
      43 {
      44     cin >> num;
      45     dfs(1);
      46     cout << ans << endl;
      47     return 0;
      48 }
  • 相关阅读:
    全文本搜索神器
    唯一索引和普通索引怎么选择
    程序员应不应该搞全栈
    c 的陷阱
    抽象能力
    电影电视剧推荐
    系统故障诊断
    一次web网站被入侵的处理记录
    Spark RDD 操作
    (转)Mysql哪些字段适合建立索引
  • 原文地址:https://www.cnblogs.com/FlyerBird/p/9004488.html
Copyright © 2011-2022 走看看