先给出n个数据,在给出一个结果m,在给你一个含有n个变量的表达式,问是否存在一种方式将数据一一代入变量,使得表达式的结果等于m。
暴力枚举
#include <stdio.h>
#include <algorithm>
using namespace std;
#define N 200
int p[5];
char expr[N],str[N],num[5][3];
int res;
int cal(int l,int r)
{
if(l > r)
return 0;
int i,cnt = 0,p = -1,flag = 0;
for(i = l; i <= r; ++i)
if(expr[i]=='(')
++cnt;
else if(expr[i] == ')')
--cnt;
else if((expr[i] == '+' || expr[i] == '-') && !cnt)
flag = 1, p = i;
else if((expr[i] == '*' || expr[i] == '/') && !cnt && !flag)
p = i;
if(p == -1)
{
if(expr[l]>='0'&&expr[l]<='9')
{
博客探讨了如何解决HDU 4192问题,该问题涉及在给定n个数据和目标结果m的情况下,通过全排列和模拟计算方法,判断是否存在一种代入方式使表达式结果等于m。文章详细阐述了暴力枚举的解决方案。
订阅专栏 解锁全文
13万+

被折叠的 条评论
为什么被折叠?



