【DFS练习】Pku1950 Dessert-C++
2024-09-01 02:14:10
这道题和这道题很类似。
这里还是说一下坑点,因为前一道题’等式’的加数只有9个,但是这道题目最大到了15,所以在选择不加符号的时候需要判断是用100去乘还是用10去乘就可以了。
基本代码稍微把相关的9改成n就可以了。具体思路去看一下前面那篇博客哈,下面就直接贴代码了。
#include<bits/stdc++.h>
using namespace std;
int n,cnt=0;
int num[16];//0.1+2-
bool flag;
void dfs(int sum)
{
if(sum==n+1)
{
int q=0,p;
for(int i=1;i<=n;)
{
if(num[i]==1)flag=1;
if(num[i]==2)flag=0;
p=i;
i++;
while(!num[i]&&i<=n)
{
if(i<10)
p=p*10+i;
else p=p*100+i;
i++;
}
if(flag)q+=p;
else q-=p;
}
if(q==0)
{
cnt++;
if(cnt<=20)
{
cout<<1;
for(int i=2;i<=n;i++)
{
if(num[i]==1)cout<<" + ";
if(num[i]==2)cout<<" - ";
if(num[i]==0)cout<<" . ";
cout<<i;
}
cout<<endl;
}
}
return;
}
num[sum]=1;
dfs(sum+1);
num[sum]=2;
dfs(sum+1);
num[sum]=0;
dfs(sum+1);
return;
}
int main()
{
cin>>n;
num[1]=1;
dfs(2);
cout<<cnt<<endl;
return 0;
}
ov.
最新文章
- C#-WebForm-文件上传-FileUpload控件
- 【WPF】制作自定义的列表项面板
- .net AES加密解密
- jquery获取radio和select选中值
- 【BZOJ1257】【CQOI2007】余数之和sum
- RegExp 对象的三个方法:compile()、exec()、test()
- POJ C++程序设计 编程题#1 编程作业—文件操作与模板
- 不变性、协变性和逆变性(Invariance, Covariance &; Contravariance)
- POJ 3007 Organize Your Train part II(哈希链地址法)
- SGU Volume 1
- DirectX11 学习笔记3 - 创建一个立方体 和 轴
- Hadoop权威指南:FSDataInputStream对象
- 微信小程序框架探究和解析
- python 线程(创建2种方式,锁,死锁,递归锁,GIL锁,守护进程)
- 怎样让两个DIV在同一水平线上面显示
- java常见面试题及三大框架面试
- la 4394
- Could not locate executable null\bin\winutils.exe in the Hadoop binaries.
- alias 创建别名
- CorelDRAW中如何复制对象属性详解
热门文章
- SQL Server 命名实例更改端口进行发布订阅
- 零元学Expression Blend 4 - Chapter 33 简单轻松的学会如何使用Visual States(下)
- 进程间通信 - 动态链接库中共享内存(利用DLL的2~3G的地址段空间)
- 如何在 Xcode 中进行 Qt 开发(可使用使用 Homebrew 来安装qt)
- C++实现半透明按钮控件(PNG,GDI+)
- Hadoop 三剑客之 —— 集群资源管理器 YARN
- 深度强化学习day01初探强化学习
- Python 爬虫从入门到进阶之路(七)
- 05 div的嵌套
- 论文研读Unet++