hdu 4403 dfs
巨麻烦的模拟题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的更多相关文章
- HDU 5143 DFS
分别给出1,2,3,4 a, b, c,d个 问能否组成数个长度不小于3的等差数列. 首先数量存在大于3的可以直接拿掉,那么可以先判是否都是0或大于3的 然后直接DFS就行了,但是还是要注意先判合 ...
- Snacks HDU 5692 dfs序列+线段树
Snacks HDU 5692 dfs序列+线段树 题意 百度科技园内有n个零食机,零食机之间通过n−1条路相互连通.每个零食机都有一个值v,表示为小度熊提供零食的价值. 由于零食被频繁的消耗和补充, ...
- HDU 4403 A very hard Aoshu problem(dfs爆搜)
http://acm.hdu.edu.cn/showproblem.php?pid=4403 题意: 给出一串数字,在里面添加一个等号和多个+号,使得等式成立,问有多少种不同的式子. 思路: 数据量比 ...
- HDU 4403 A very hard Aoshu problem(DFS)
A very hard Aoshu problem Problem Description Aoshu is very popular among primary school students. I ...
- 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 ...
- HDU 5877 dfs+ 线段树(或+树状树组)
1.HDU 5877 Weak Pair 2.总结:有多种做法,这里写了dfs+线段树(或+树状树组),还可用主席树或平衡树,但还不会这两个 3.思路:利用dfs遍历子节点,同时对于每个子节点au, ...
- hdu 4751(dfs染色)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4751 思路:构建新图,对于那些两点连双向边的,忽略,然后其余的都连双向边,于是在新图中,连边的点是能不 ...
- HDU 1045 (DFS搜索)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1045 题目大意:在不是X的地方放O,所有O在没有隔板情况下不能对视(横行和数列),问最多可以放多少个 ...
- HDU 1241 (DFS搜索+染色)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1241 题目大意:求一张地图里的连通块.注意可以斜着连通. 解题思路: 八个方向dfs一遍,一边df ...
随机推荐
- JavaScript操作XML
JavaScript操作XML (一) JavaScript操作XML是通过XML DOM来完成的.那么什么是XML DOM呢?XML DOM 是: 用于 XML 的标准对象模型 用于 XML 的标准 ...
- QT 常用控件一
QWidget 创建窗口 如果widget未使用腹肌进行创建,则在显示时视为窗口或顶层widget. 由于顶层widget没有父级对象类来确保在其不再使用时删除,所以需要开发人员在应用程序中对其进程跟 ...
- 端口扫描base
#coding:utf8 import os import socket import sys def IsOpen(ip,port): s = socket.socket(socket.AF_INE ...
- mac OS X Yosemite 上编译hadoop 2.6.0/2.7.0及TEZ 0.5.2/0.7.0 注意事项
1.jdk 1.7问题 hadoop 2.7.0必须要求jdk 1.7.0,而oracle官网已经声明,jdk 1.7 以后不准备再提供更新了,所以趁现在还能下载,赶紧去down一个mac版吧 htt ...
- mac下环境变量、maven3.1.1 及 jdk1.7.0.45配置
一.设置环境变量 1.打开终端,输入 cd ~ 2.输入 touch .bash_profile (如果该文件不存在,将创建一个空文件) 3.输入 open .bash_profile (调用记事本编 ...
- 支付宝Cookie高危漏洞引发的思考
背景:当时我在做公司的网站支付接入,在调试支付宝WAP支付时,发现一些匪夷所思的事情: 1.我想要切换账号时退到需要输入登录信息时,原账号并没有退出,我按一下后退键又回来了: 2.我关闭浏览器也没有退 ...
- 关于base64编码的原理和实现
在前文 Data URI 应用场景小结 中我们提到了一个概念,叫做 base64编码,今天我们就来聊聊 base64编码,揭开它的神秘面纱. 一句话解释:Base64是一种基于64个可打印字符来表示二 ...
- WampServer下如何实现多域名配置(虚拟域名配置)
之前在学习跨域的时候,我写过一篇叫做WampServer下使用多端口访问的文章,默认的 localhost 采用的是 80 端口,能使用多端口访问的核心是得新建一个端口,也就是新建一个 http 服务 ...
- 从idea上通过路径去导入项目
这里我用git来演示导入. 首先确定你要导入项目的路径.(我这里用码云路径图片做演示) 1.选择 2.填写
- IDEA【 MyBatis Plugin】 插件免费完美运行
mybatis_plus.jar 包 .Install plugin from disk...导入即能用. BaiDu云: 链接: http://pan.baidu.com/s/1geKtTbP 密码 ...