HDU-4403 A very hard Aoshu problem 枚举
直接枚举等号所在位置,然后左右两边用两个MAP来记录组成和的个数,然后运用乘法原理得到答案。
代码如下:
#include<iostream> #include<cstdio> #include<cstdlib> #include<algorithm> #include<cmath> #include<queue> #include<set> #include<map> #include<cstring> #include<vector> #include<string> #define LL long long using namespace std;char s[20];int len;map<long long,int>fmp, tmp;long long get(int x, int y) {long long ret = 0;for (int i = x; i <= y; ++i) {ret = ret * 10 + s[i] - '0';} return ret; }void cal(int a, int b, map<long long,int>&mp) {if (a == b) {++mp[s[a]-'0'];return;}int mask = 1 << (b-a), last;for (int i = 0; i < mask; ++i) {long long temp = 0;last = a;for (int j = 0; j < (b-a); ++j) {if (i & (1 << j)) {temp += get(last, a + j);last = a + j + 1;}}temp += get(last, b);++mp[temp];} }long long solve(int x) {long long ret = 0;fmp.clear(), tmp.clear();map<long long, int>::iterator it;cal(0, x, fmp);cal(x+1, len-1, tmp);for (it = fmp.begin(); it != fmp.end(); ++it) {ret += (long long)(it->second) * (long long)tmp[it->first];}return ret; }int main( ) {long long ret;while (scanf("%s", s), s[0] != 'E') {ret = 0;len = strlen(s);for (int i = 0; i <= len-2; ++i) {// 枚举等号所在的位置ret += solve(i);}printf("%I64d\n", ret);}return 0; }
转载于:https://www.cnblogs.com/Lyush/archive/2012/09/22/2698435.html
HDU-4403 A very hard Aoshu problem 枚举相关推荐
- HDU 4403 A very hard Aoshu problem DFS
problem statement 这道题给我们一个不超过15位的整数 让我们在其中加等号或者加号 如果加完符号后符合计算结果 那么计数 最后输出所有的情况 problem analysis 这道题其 ...
- 【hdu4403】 A very hard Aoshu problem dfs
传送门:嘿原题在这 题意: 给一串数字,在里面加一个等于号和若干加号,问有多少种方案合法. 题解: 枚举=位置,搜索+位置 //hdu4403 A very hard Aoshu problem // ...
- hdu 2058 解题报告 - The sum problem
hdu 2058 解题报告 - The sum problem 传送门:http://acm.hdu.edu.cn/showproblem.php?pid=2058 等差求和公式: Sn=(a1+aN ...
- HDU 4282 A very hard mathematic problem 二分题目
http://acm.hdu.edu.cn/showproblem.php?pid=4282 题解:http://www.cnblogs.com/E-star/archive/2012/09/11/2 ...
- HDU 5944 Fxx and string(暴力/枚举)
传送门 Fxx and string Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Othe ...
- hdu 6149 Valley Numer II(状压+ 枚举)
Valley Numer II Time Limit: 12000/6000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- HDU 6411 带劲的and和【枚举贡献】
HDU 6411 带劲的and和: 分析:写了好久了,突然想补一下博客... 公式看完过后,就是求一个联通图内任意两点之间的max(vi,vj)×(vi&vj).直观感受是n*n的做法,从枚举 ...
- hdu 3509 Buge's Fibonacci Number Problem(矩阵乘法+二项式)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=3509 Buge's Fibonacci Number Problem Time Limit: 10000/ ...
- HDU 6833 A Very Easy Math Problem
A Very Easy Math Problem 推式子 ∑ai=1n∑a2=1n⋯∑ax=1n(∏j=1xajk)f(gcd(a1,a2,-,ax))×gcd(a1,a2,-,ax)\sum_{a_ ...
最新文章
- 人生苦短,我用PyCharm(附链接)
- iOS开源程序下载链接整理
- 关于更改MYECLIPSE JS 代码背景颜色
- Java-J2SE专题复习
- linux 进程监听服务 monit 简介
- Angular中路由的嵌套-父子路由
- 云信小课堂丨简单四步,快速搭建协同办公系统!
- Qt 检测第三方软件是否运行、杀死第三方进程
- 《学习之道》第六章关注过程,亦培养习惯
- MapReduce经典案例——统计单词数
- windows phone7 学习笔记14——地理位置服务与反应性扩展框架
- 感染新冠后为啥会丧失​嗅觉?最新《细胞》论文终于搞明白了!
- LeetCode刷题(Python)——汉明距离
- python3颜色代码_python3中布局背景颜色代码分析
- KEIL MDK access violation at 0x40021000 : no ‘read‘ permission的一种解决方法
- iOS字符串处理笔记(正则表达式、NSScanner扫描、CoreParse解析器)
- cisco设备的mib库
- 整理百度SEO指南2.0
- 97 Three.js 使用 specularMap 设置高光贴图
- 确定项目的目的和目标
热门文章
- android activity根节点addview_Activity问你4个问题,你敢回答吗?
- 字符转char android,android – 如何在kotlin语言中将char转换为ascii值
- mysql2008无法启动_SQL Server 2008突然无法正常启动
- qt 对话框位置如何确定_在图片上加字,如何确定该用什么字体、字体的颜色和放置的位置?...
- centos ipvsadm 规则保存_从VAR精神到判罚规则:终场哨声后的VAR点球,到底是否合理?...
- mysql 查询任务_mysql中怎样显示服务器正在执行的sql任务
- 微信支付本地服务器端,微信支付接口,服务器端处理(新版)
- python ssl模块用法详解_一看就懂,Python 日志模块详解及应用!
- XR应用场景骤变,一场波及5亿人的新探索开始了
- 奔四的听力障碍码农,被开除15次,面试被拒200+次,还要继续干下去吗?