hdu4403暴力搜索
题意:
给你一个数字串,让你在里面添加一个=和若干个+,使等式成立.
思路:
lmax最大是15,直接暴搜,无压力,关键是判重,要在答案的时候判重,一开始在进队列之前判的,各种wa,哎!后来才发现如果在之前判断就不能得到当前什么符号都不加,而下一个有符号了,判重我用的是map,随意什么只要别爆内存就行,水搜索竟然调了2个小时,丢脸啊...
#include<stdio.h>
#include<string.h>
#include<queue>
#include<map>
using namespace std; typedef struct
{
int mk[16];
char str[16];
int nowid ,deng;
}NODE; NODE xin ,tou;
int nn;
map<__int64 ,__int64>mark; bool MK(NODE aa)
{
__int64 sum = 0;
for(int i = 0 ;i <= nn ;i ++)
sum = sum * 10 + aa.mk[i];
if(mark[sum]) return 1;
mark[sum] = 1;
return 0;
} bool ok(NODE tou)
{
if(tou.deng)
{
int l ,r;
l = r = 0;
int sum = 0;
int mki;
for(int i = 0 ;tou.mk[i] != 2 ;i ++)
{
if(tou.mk[i] == 1)
{
l += sum;
sum = tou.str[i] - 48;
}
else
{
sum = sum * 10 + tou.str[i] - 48;
}
mki = i;
}
l += sum;
sum = 0;
for(int i = mki + 1;i <= nn ;i ++)
{
if(tou.mk[i] == 1)
{
r += sum;
sum = tou.str[i] - 48;
}
else
{
sum = sum * 10 + tou.str[i] - 48;
}
}
r += sum;
return l == r && !MK(tou);
}
return 0;
} int BFS()
{
memset(xin.mk ,0 ,sizeof(xin.mk));
nn = strlen(xin.str) - 1;
xin.nowid = 0;
xin.deng = 0;
queue<NODE>q;
q.push(xin);
int ans = 0;
mark.clear();
while(!q.empty())
{
tou = q.front();
q.pop();
if(ok(tou))
ans ++;
if(tou.nowid == nn) continue;
if(!tou.deng)// =
{
xin = tou;
xin.deng = 1;
xin.nowid = tou.nowid + 1;
xin.mk[xin.nowid] = 2;
q.push(xin);
} //+
xin = tou;
xin.deng = tou.deng;
xin.nowid = tou.nowid + 1;
xin.mk[xin.nowid] = 1;
q.push(xin); //
xin = tou;
xin.deng = tou.deng;
xin.nowid = tou.nowid + 1;
xin.mk[xin.nowid] = 0;
q.push(xin);
}
return ans;
} int main ()
{
while(~scanf("%s" ,xin.str) && strcmp("END" ,xin.str))
{
printf("%d\n" ,BFS());
}
return 0;
}
hdu4403暴力搜索的更多相关文章
- ACM 暴力搜索题 题目整理
UVa 129 Krypton Factor 注意输出格式,比较坑爹. 每次要进行处理去掉容易的串,统计困难串的个数. #include<iostream> #include<vec ...
- hdu 4740 The Donkey of Gui Zhou(暴力搜索)
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=4740 [题意]: 森林里有一只驴和一只老虎,驴和老虎互相从来都没有见过,各自自己走过的地方不能走第二次 ...
- hdu 1427 速算24点 dfs暴力搜索
速算24点 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Problem De ...
- 随手练——洛谷-P1151(枚举与暴力搜索)
枚举 #include <iostream> using namespace std; int main() { ; cin >> k; ; i < ; i++) { ) ...
- 枚举进程——暴力搜索内存(Ring0)
上面说过了隐藏进程,这篇博客我们就简单描述一下暴力搜索进程. 一个进程要运行,必然会加载到内存中,断链隐藏进程只是把EPROCESS从链表上摘除了,但它还是驻留在内存中的.这样我们就有了找到它的方法. ...
- [luogu 1092] 虫食算 (暴力搜索剪枝)
传送门 Description Input 包含四行. 第一行有一个正整数 (N≤26). 后面的三行,每行有一个由大写字母组成的字符串,分别代表两个加数以及和.这3个字符串左右两端都没有空格,从高位 ...
- HDU 3131 One…Two…Five! (暴力搜索)
题目链接:pid=3131">HDU 3131 One-Two-Five! (暴力搜索) 题意:给出一串数字,要求用加,减,乘,除(5/2=2)连接(计算无优先级:5+3*6=8*6= ...
- 吴裕雄 python 机器学习——模型选择参数优化暴力搜索寻优GridSearchCV模型
import scipy from sklearn.datasets import load_digits from sklearn.metrics import classification_rep ...
- POJ 1129:Channel Allocation 四色定理+暴力搜索
Channel Allocation Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 13357 Accepted: 68 ...
随机推荐
- 《C++ Primer》笔记 第1章 开始
输出运算符<< 的计算结果就是其左侧运算对象 std::endl 结束当前行,并将与设备关联的缓冲区中的内容刷到设备中. 程序员常常在调试时添加打印语句.这类语句应该保证"一直& ...
- Java 集合框架 01
集合框架· ArrayList 和 Vector 对象数组的概述和使用 * A:案例演示 * 需求:我有5个学生,请把这5个学生的信息存储到数组中,并遍历数组,获取到每个学生的信息 Student[] ...
- TiDB在更新版本的时候初始化Prometheus的配置文件失败
一.背景是更换版本了之后,按照正常扩容节点也会报错. 我们安装的TiDB版本是v4.0.0,因为环境还在试用阶段,所以会经常增删节点.原因是我们违背官方说明,强行用机械盘上了,跑不过单机的mysql, ...
- Spring Boot 轻量替代框架 Solon 的架构笔记 - new
Solon 是一个微型的Java开发框架.项目从2018年启动以来,参考过大量前人作品:历时两年,4000多次的commit:内核保持0.1m的身材,超高的跑分,良好的使用体验.支持:RPC.REST ...
- Windows包管理器——Scoop 包管理器
Scoop 包管理器 目录 Scoop 包管理器 参考 官方 博客 声明 目录 scoop 安装&&卸载 安装( 使用 powershell) 卸载(软件的使用权归自己所有,一言不合即 ...
- python实现通过URL下载图片到本地服务器
import os import urllib.request image_url = 'http://img.jingtuitui.com/759fa20190115144450401.jpg' f ...
- shiro太复杂?快来试试这个轻量级权限认证框架!
前言 在java的世界里,有很多优秀的权限认证框架,如Apache Shiro.Spring Security 等等.这些框架背景强大,历史悠久,其生态也比较齐全. 但同时这些框架也并非十分完美,在前 ...
- CSS浮动布局带来的高度塌陷以及其解决办法
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="U ...
- SQL注入与参数化查询
SQL注入的本质 SQL注入的实质就是通过SQL拼接字符串追加命令,导致SQL的语义发生了变化.为什么发生了改变呢? 因为没有重用以前的执行计划,而是对注入后的SQL语句重新编译,然后重新执行了语法解 ...
- Java例题_27 100以内的素数
1 /*27 [程序 27 求素数] 2 题目:求 100 之内的素数 3 */ 4 5 /*分析 6 * 素数:是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数. 7 * 同第二题: ...