竟然搜过去了。。

显然从后往前搜索。每次判断最后若干位是否和目标一致。

对于每一位,可以填i个0 j个4 k个7 其中i+j+k==6

先预处理出这个。然后按位搜索。

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;int a[100][4];
int all;
typedef unsigned long long ll;
ll M;
int d[100],np;
ll te[100];void prework(){all=0;for (int i=0;i<=6;i++)for (int j=0;j<=6-i;j++){int k = 6-i-j;a[++all][0] = j*4+k*7;a[all][1] = i;a[all][2] = i+j;a[all][3] = i+j+k;}te[0] =1;for (int i=1;i<=18;i++) te[i]=te[i-1]*10;
}bool check(ll a,ll b,int p){int aa = a/te[p-1]%10;int bb = b/te[p-1]%10;return aa==bb;
}bool work(ll mul,ll now,int p){if (mul==now) return true;for (int i=1;i<=all;i++){if (mul-now<a[i][0]*te[p]) continue;ll ne = now+a[i][0]*te[p];if (!check(mul,ne,p+1)) continue;d[p]=i;np = p;if (work(mul,ne,p+1)) return true;}return false;
}int dig[6][20];void output(){for (int i=0;i<=np;i++){for (int j=0;j<a[d[i]][1];j++) dig[j][i]=0;for (int j=a[d[i]][1];j<a[d[i]][2];j++) dig[j][i]=4;for (int j=a[d[i]][2];j<a[d[i]][3];j++) dig[j][i]=7;}for (int i=0;i<6;i++){ll now =0;for (int j=0;j<=np;j++) now+= te[j]*dig[i][j];cout << now << " ";}cout << endl;
}int main(){prework();int T;cin >> T;ll N;while(T--){memset(dig,0,sizeof(dig));cin >> N;if (work(N,0,0)) output(); else cout << -1 << endl;}
}

View Code

转载于:https://www.cnblogs.com/qinhang3/p/3370440.html

CF 354E DFS相关推荐

  1. dfs(小天狼星的访问,CF - 1249-B2)

    目录 小天狼星的访问 CF - 1249-B2 小天狼星的访问 Description 经过数月的准备,小天狼星,一个被诬陷的杀人犯,准备闯入霍格沃茨见见他的侄子.霍格沃茨的地图呈一颗树状分布.每个房 ...

  2. CF 375D. Tree and Queries加强版!!!【dfs序分块 大小分类讨论】

    传送门 题意: 一棵树,询问一个子树内出现次数$\ge k$的颜色有几种,Candy?这个沙茶自带强制在线 吐槽: 本来一道可以离散的莫队我非要强制在线用分块做:上午就开始写了然后发现思路错了...: ...

  3. CF Edu54 E. Vasya and a Tree DFS+树状数组

    Vasya and a Tree 题意: 给定一棵树,对树有3e5的操作,每次操作为,把树上某个节点的不超过d的子节点都加上值x; 思路: 多开一个vector记录每个点上的操作.dfs这颗树,同时以 ...

  4. CF Fox And Two Dots (DFS)

    Fox And Two Dots time limit per test 2 seconds memory limit per test 256 megabytes input standard in ...

  5. CF 732F Tourist Reform——v-SCC+dfs

    题目:http://codeforces.com/contest/732/problem/F 给无向图定向使得从每个点出发能去的点数最小值最大. SCC.点内部dfs定向.点间以siz最大的为起点反向 ...

  6. cf 723D Lakes in Berland(dfs)

    D. Lakes in Berland time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  7. 【打CF,学算法——三星级】CodeForces 615B Longtail Hedgehog (DFS/拓扑排序)

    [CF简介] 提交链接:CF 615B 题面: B. Longtail Hedgehog time limit per test 3 seconds memory limit per test 256 ...

  8. CF#190DIV.1

    1 /* 2 CF#190DIV.1-C 3 题意:给你n个结点的树,给这些结点标记字母AB..Z,对于标记相同的结点路径上 4 的结点的标记必须有一个是大于该标记的:问是否可以标记(A是最大标记) ...

  9. 2015 百度之星 1003 棋盘占领 dfs

    棋盘占领 Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://bestcoder.hdu.edu.cn/contests/contest_show ...

  10. [CF]Codeforces Round #529 (Div. 3)

    [CF]Codeforces Round #529 (Div. 3) C. Powers Of Two Description A positive integer xx is called a po ...

最新文章

  1. redis在linux下安装并測试(在spring下调用)
  2. ASP.NET完整打包卸载更新攻略(By Installshield 2010)【转】
  3. VTK:可视化算法之Cutter
  4. 【测评】PaMu Unique真无线蓝牙耳机,国潮新时尚,年轻人的标配
  5. Sequence II (HDU 5919)(主席树)
  6. mysql 创建新用户权限_MySQL创建新用户以及权限授予
  7. 简单记录fastDFS安装
  8. 网络蚂蚁(netants) v1.25 中文版 绿色
  9. Python(九)- 音频文字转换
  10. ug冲模标准件库_ug标准件库免费
  11. mysql删除的表怎么恢复_误删除mysql数据库表该如何恢复操作方法
  12. 智方8000系文具进销存管理系统 v11.27 bt
  13. 蒙特卡罗方法与马尔科夫链
  14. ios屏幕的旋转,Device Orientation
  15. 关于vs中出现lnk2019和lnk1120错误
  16. Mysql-12章-函数和操作符 (翻译+理解)
  17. 我要搬家到51CTO了.
  18. Android 开发高手课 课后练习(1 ~ 5)
  19. 为什么说HashSet是无序的
  20. python爬取淘票票正在热映电影

热门文章

  1. 现在动手,建立你的灾备系统
  2. PCI设备扫描和资源分配
  3. c语言各定义长度,关于C语言各个数据类型长度
  4. 一次Linux驱动升级的问题记录
  5. Linux MPLS 初探
  6. dow_interruptible() 源码及函数返回分析
  7. ACWING828 模拟栈
  8. 将netcat-openbsd替换成为netcat-traditional
  9. sql语句查询执行顺序
  10. 约数定理和分解质因数