暴力搜索,据说精度卡的紧。。。但我是double过了的。

#include<cstdio>
#include<cstring>
#include<vector>
#include<cmath>
#include<queue>
#include<list>
#include<algorithm>
using namespace std;const double eps=1e-8;
int dir[4][2],t[4][2];
double a[100][100];
bool flag[100][100];
char s[100][100];
int n,m;
double sum;
bool ans;
double path[1000];void init()
{dir[0][0]=2; dir[0][1]=0;dir[1][0]=-2; dir[1][1]=0;dir[2][0]=0; dir[2][1]=2;dir[3][0]=0; dir[3][1]=-2;t[0][0]=1; t[0][1]=0;t[1][0]=-1; t[1][1]=0;t[2][0]=0; t[2][1]=1;t[3][0]=0; t[3][1]=-1;for(int i=0;i<n;i++)for(int j=0;j<m;j++)a[i][j]=-1.0;for(int i=0; i<n; i++)for(int j=0; j<m; j++)if(s[i][j]>='0'&&s[i][j]<='9')a[i][j]=1.0*(s[i][j]-'0');memset(flag,0,sizeof flag);
}void dfs(double nowNum,int nowx,int nowy,int tot)
{if(fabs(nowNum-sum)<eps){ans=1;return;}for(int i=0; i<4; i++){double newNum;int newX,newY;newX=nowx+dir[i][0];newY=nowy+dir[i][1];if(newX>=0&&newX<n){if(newY>=0&&newY<m){if(flag[newX][newY]==0){flag[newX][newY]=1;if(s[nowx+t[i][0]][nowy+t[i][1]]=='+'){newNum=nowNum+a[newX][newY];dfs(newNum,newX,newY,tot+1);if(ans) return;}else if(s[nowx+t[i][0]][nowy+t[i][1]]=='-'){newNum=nowNum-a[newX][newY];dfs(newNum,newX,newY,tot+1);if(ans) return;}else if(s[nowx+t[i][0]][nowy+t[i][1]]=='*'){newNum=nowNum*a[newX][newY];dfs(newNum,newX,newY,tot+1);if(ans) return;}else if(s[nowx+t[i][0]][nowy+t[i][1]]=='/'){if(fabs(a[newX][newY]-0.0)<eps) {flag[newX][newY]=0;continue;}newNum=nowNum/a[newX][newY];dfs(newNum,newX,newY,tot+1);if(ans) return;}flag[newX][newY]=0;}}}}
}int main()
{int T;scanf("%d",&T);while(T--){scanf("%d%d%lf",&n,&m,&sum);for(int i=0; i<n; i++) scanf("%s",s[i]);init();ans=0;for(int i=0; i<n; i++)for(int j=0; j<m; j++)if(a[i][j]>=0){memset(flag,0,sizeof flag);flag[i][j]=1;dfs(a[i][j],i,j,1);if(ans) break;}if(ans) printf("Possible\n");else printf("Impossible\n");}return 0;
}

转载于:https://www.cnblogs.com/zufezzt/p/5157992.html

HDU 5612 Baby Ming and Matrix games相关推荐

  1. HDU 多校 6400 Parentheses Matrix(构造)

    HDU 多校 6400 Parentheses Matrix(构造) // Problem: D. Parentheses Matrix // Contest: Codeforces - 2018 C ...

  2. hdu 4349——Xiao Ming's Hope

    题意:给定n,让求c(n,0),c(n,1)--c(n,n)中有多少奇数. 思路:本题为Lucas定理推导题,我们分析一下 C(n,m)%2,那么由lucas定理,我们可以写 成二进制的形式观察,比如 ...

  3. HDU 4349 Xiao Ming#39;s Hope 组合数学

    题意:给你n,问在C(n,1),C(n,2)...C(n,n)中有多少个奇数. 比赛的时候打表看出规律,这里给一个数学上的说明. Lucas定理:A,B非负整数,p是质数,A,B化为p进制分别为a[n ...

  4. android动态更新数据库数据,Android数据库更新——上万条数据的插入

    在实际情况下,很可能遇到会向一个表中插入10万条数据,而这样的数据库更新,如果用寻常的方式,在SQLiteOpenHelper.onUpdate()方法中不断的执行SQL语句,那么效率是可想而知的,甚 ...

  5. mysql中gender要用什么类型,如何选择合适的MySQL数据类型

    一.MySQL数据类型选择原则 更小的通常更好:一般情况下选择可以正确存储数据的最小数据类型.越小的数据类型通常更快,占用磁盘,内存和CPU缓存更小. 简单就好:简单的数据类型的操作通常需要更少的CP ...

  6. 排列组合 C(n,m)

    一.求解C(n, m) 公式一: 公式二: 公式二可以这么理解,从n个物品中取m个有2种情况:(1)不取第n个物品,于是从前n-1个中取m个; (2)取第n个物品,于是从前n-1个中取m-1; 所以答 ...

  7. ICML 2019 Accepted Papers (Title, Author, Abstract, Code) (001-150)

    本博客致力于整理出ICML 2019接收的所有论文,包括题目.作者.摘要等重要信息,能够方便广大读者迅速找到自己领域相关的论文. 相关论文代码.附录可参考ICML 2019 #####1-10#### ...

  8. html form role,Spring Security中html页面设置hasRole无效的问题

    HDU 4349 Xiao Ming&#39;s Hope 有这样一个性质:C(n,m)%p=C(p1,q1)*C(p2,q2).......%p,其中pkpk-1...p1,qkqk-1.. ...

  9. python爬虫之请求(url)构造 —— 寻找参数来源以及中文编码

    1. 环境 系统:win7 python:3.6.1 IDE:pycharm 平台:scrapy 2. 目标 按照下图中的下拉列表,构造搜索链接: 在"All"类目下,搜索关键字& ...

最新文章

  1. ROOT android 原理。 基于(zergRush)
  2. 什么是python第三方库
  3. 《阿丽塔》脑机接口正从科幻走向现实
  4. Cordova打包的Vue项目在IOS无法拉起支付宝和微信支付
  5. MySQL查看及修改字段的字符集
  6. java api apk_java-如何在APK文件中保护此API
  7. sklearn 线性回归算法+boston房价数据集
  8. 中国微型连接器市场趋势报告、技术动态创新及市场预测
  9. CTF Crypto简单题学习思路总结(持续更新)
  10. 【无标题】统计从键盘输入的字符中数字字符的个数,用换行符结束循环-C语言基础
  11. iPhone12基带确认,果粉放心
  12. Android安全机制(二)
  13. 触发器原理与使用方法
  14. 基础的图书馆管理系统
  15. 解决 iOS 上 transform rotate 兼容问题
  16. 三六零发布半年报,一点两翼何时展翅高飞?
  17. python 物理公式计算_计算重力/跳跃
  18. python 找到dataframe中哪些列是常数列 即 固定值
  19. qcc304x笔记之嵌入EQ模块(十二)
  20. 实施部署(锐捷云桌面篇)

热门文章

  1. java两二叉树相同_java – 最有效的方式来测试两个二叉树的相等性
  2. 为什么剩余数不能相加_为什么各位之和是 3 的倍数的数能被 3 整除?
  3. access 查找工龄大于30_同济大学大学计算机access作业答案
  4. gin redis 链接不上_内存优化,Redis是如何实现的!
  5. 【项目管理】项目问题诊断
  6. 资深项目经理的10条项目管理心得
  7. Vue+Openlayers+Draw实现画笔切换功能,切换画笔为点、线、面
  8. Windows中启动Redis走配置文件的bat脚本
  9. Windows服务器上Mqtt服务器EMQX的安装使用
  10. DataGridView怎样实现添加、删除、上移、下移一行