巨麻烦的模拟题orz。。。。

先确定等号的位置,然后两层dfs,分别算等号前面的和后面的,再比较

话说这题竟然不开long long都能水过

 #include <iostream>
#include<cstring>
using namespace std;
int ANS,ansx,ansy,T,l;
string s;
int nx[],ny[],ax[],ay[],a[];
int lx,ly; int calcx()
{
//ax[1..lx-1]
//nx[1..lx]
int tmpn=nx[];
int tmpa=;
for(int i=;i<=lx-;i++)
{
if(ax[i]==)
{
tmpa+=tmpn;
tmpn=nx[i+];
}
else
{
tmpn=tmpn*+nx[i+];
}
}
tmpa+=tmpn;
return tmpa;
} int calcy()
{
//ay[1..ly-1]
//ny[1..ly]
int tmpn=ny[];
int tmpa=;
for(int i=;i<=ly-;i++)
{
if(ay[i]==)
{
tmpa+=tmpn;
tmpn=ny[i+];
}
else
{
tmpn=tmpn*+ny[i+];
}
}
tmpa+=tmpn;
return tmpa;
} void dfsy(int y)
{
if(y==ly)
{
//cout<<nx[1]<<" ";
//for(int i=1;i<=lx-1;i++) cout<<char(ax[i]+'A')<<" "<<nx[i+1]<<" ";
//cout<<"----";
//cout<<ny[1]<<" ";
//for(int i=1;i<=ly-1;i++) cout<<char(ay[i]+'A')<<" "<<ny[i+1]<<" "; ansy=calcy();
//cout<<" "<<ansx<<"=="<<ansy<<" ";
if(ansy==ansx)
{
ANS++;
// cout<<" OK! ";
}
//cout<<endl;
}
else
{
ay[y]=;
dfsy(y+);
ay[y]=;
dfsy(y+);
}
} void dfsx(int x)
{
if(x==lx)
{
ansx=calcx();
dfsy();
}
else
{
ax[x]=; //add a plus after ax[x]
dfsx(x+);
ax[x]=;
dfsx(x+);
}
} int main()
{
while(cin>>s)
{
if(s=="END") break;
l=s.length();
ANS=; ansx=; ansy=;
for(int i=;i<=l;i++)
a[i]=s[i-]-'';
for(int eq=;eq<=l-;eq++) //add equal after a[eq]
{
memset(nx,,sizeof(nx));
memset(ny,,sizeof(ny));
for(int i=;i<=eq;i++) nx[i]=a[i];
lx=eq;
for(int i=eq+;i<=l;i++) ny[i-eq]=a[i];
ly=l-eq;
dfsx();
}
cout<<ANS<<endl;
} return ;
}

hdu 4403 dfs的更多相关文章

  1. HDU 5143 DFS

    分别给出1,2,3,4   a, b, c,d个 问能否组成数个长度不小于3的等差数列. 首先数量存在大于3的可以直接拿掉,那么可以先判是否都是0或大于3的 然后直接DFS就行了,但是还是要注意先判合 ...

  2. Snacks HDU 5692 dfs序列+线段树

    Snacks HDU 5692 dfs序列+线段树 题意 百度科技园内有n个零食机,零食机之间通过n−1条路相互连通.每个零食机都有一个值v,表示为小度熊提供零食的价值. 由于零食被频繁的消耗和补充, ...

  3. HDU 4403 A very hard Aoshu problem(dfs爆搜)

    http://acm.hdu.edu.cn/showproblem.php?pid=4403 题意: 给出一串数字,在里面添加一个等号和多个+号,使得等式成立,问有多少种不同的式子. 思路: 数据量比 ...

  4. HDU 4403 A very hard Aoshu problem(DFS)

    A very hard Aoshu problem Problem Description Aoshu is very popular among primary school students. I ...

  5. HDU 4403 A very hard Aoshu problem (DFS暴力)

    题意:给你一个数字字符串.问在字符串中间加'='.'+'使得'='左右两边相等. 1212  : 1+2=1+2,   12=12. 12345666 : 12+3+45+6=66.  1+2+3+4 ...

  6. HDU 5877 dfs+ 线段树(或+树状树组)

    1.HDU 5877  Weak Pair 2.总结:有多种做法,这里写了dfs+线段树(或+树状树组),还可用主席树或平衡树,但还不会这两个 3.思路:利用dfs遍历子节点,同时对于每个子节点au, ...

  7. hdu 4751(dfs染色)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4751 思路:构建新图,对于那些两点连双向边的,忽略,然后其余的都连双向边,于是在新图中,连边的点是能不 ...

  8. HDU 1045 (DFS搜索)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1045 题目大意:在不是X的地方放O,所有O在没有隔板情况下不能对视(横行和数列),问最多可以放多少个 ...

  9. HDU 1241 (DFS搜索+染色)

    题目链接:  http://acm.hdu.edu.cn/showproblem.php?pid=1241 题目大意:求一张地图里的连通块.注意可以斜着连通. 解题思路: 八个方向dfs一遍,一边df ...

随机推荐

  1. 用微信小程序做H5游戏尝试

    微信小程序发布后,公司虽然没有拿到第一批内测资格,但作为微信亲密合作伙伴,一定要第一时间去尝试啦.现在微信小程序刚发布还在测试阶段,可以说是1.0版本,所以框架和结构内容都还不多,相关的文档跟微信AP ...

  2. 《细细品味Hive》系列课程

    Hi,博友: 我是解耀伟,笔名是虾皮,最近我在极客学院录制Hive系列教程,也是督促自己学习一种方式,可以把自己的学习积累有方向,星期天也能做点有意义的事情.在做每一期的过程中,需要找资料,总结,先自 ...

  3. 读书摘要,一种新的黑客文化:programming is forgetting

    http://opentranscripts.org/transcript/programming-forgetting-new-hacker-ethic/ 这篇文章非常有意思,作者是一个计算机教师, ...

  4. Webwork 学习之路【04】Configuration 详解

    Webwork做为经典的Web MVC 框架,个人觉得源码中配置文件这部分代码的实现十分考究. 支持自定义自己的配置文件.自定义配置文件读取类.自定义国际化支持. 可以作为参考,单独引入到其他项目中, ...

  5. Theano2.1.12-基础知识之使用GPU

    来自:http://deeplearning.net/software/theano/tutorial/using_gpu.html using the GPU 想要看GPU的介绍性的讨论和对密集并行 ...

  6. 判断Laravel Eloquent获取数据结果集是否为空

    在使用Laravel Eloquent模型时,我们可能要判断取出的结果集是否为空,但我们发现直接使用is_null或empty是无法判段它结果集是否为空的. var_dump之后我们很容易发现,即使取 ...

  7. SELECT (Transact-SQL)

    从数据库中检索行,并允许从 SQL Server 中的一个或多个表中选择一个或多个行或列.  虽然 SELECT 语句的完整语法较复杂,但其主要子句可归纳如下: [ WITH <common_t ...

  8. 架构系列:ASP.NET 项目结构搭建

    我们头开始,从简单的单项目解决方案,逐步添加业务逻辑的约束,从应用逻辑和领域逻辑两方面考虑,从简单的单个项目逐步搭建一个多项目的解决方案.主要内容:(1)搭建应用逻辑和领域逻辑都简单的单项目 (2)为 ...

  9. php缓存技术(减少数据库服务器压力)

    静态缓存(保存在磁盘上的静态文件,用PHP生成数据放入静态文件中) a)  php操作缓存 i.  生成缓存 ii.  获取缓存 iii. 删除缓存 判断目录是否存在:is_dir() dirname ...

  10. 关于Task的线程窃取

    示例代码: static void Main(string[] args) { ThreadPool.SetMaxThreads(, ); object locker = new object(); ...