【P1274】魔术数字游戏(搜索+剪枝+模拟)
做完了这个题的我一口老血喷在屏幕上。。。
这个题难度不高(~~胡扯~~),就是爆搜就可以了,然而。。判断条件灰常多,剪枝也就非常多。。然而,这些判断条件又不得不必须满足,所以也就十分容易错。。。
说一下我都是怎么错的吧。。。
##1:眼瘸少看到一个条件。。。
##2:犯傻以为不加这个地方的数字是否用过的条件也行,结果卡掉。。。
##3:输出完一个结果之后不打return。。。
##4:只是判断了数字1是不是用过忘了要接着return防止覆盖。。。
##5:用已经填上的数字个数而不是位置作为判断条件。。。
好了,错点也不能太多了(要不我也改不对。。。),作为新年的第一道题,这个题也还是挺正(du)常(liu)的。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<queue>
#define re register
#define maxn 1000007
#define ll long long
using namespace std;
int a[],b[],vis[],d,x,n,m,t,s,sum,ans[];
inline void dfs(int num,int t)
{
if(a[t])
{
dfs(num+,t+);
return;
}
if(t>)
{
if(a[]+a[]+a[]+a[]!=&&a[]&&a[]&&a[]&&a[])
return;
if(t>)
{
if(a[]+a[]+a[]+a[]!=&&a[]&&a[]&&a[]&&a[])
return;
if(t>)
{
if(a[]+a[]+a[]+a[]!=&&a[]&&a[]&&a[]&&a[])
return;
if(a[]+a[]+a[]+a[]!=&&a[]&&a[]&&a[]&&a[])
return;
if(t>)
{
if(a[]+a[]+a[]+a[]!=&&a[]&&a[]&&a[]&&a[])
return;
if(num>)
{
if(a[]+a[]+a[]+a[]!=&&a[]&&a[]&&a[]&&a[])
return;
if(t>)
{
if(a[]+a[]+a[]+a[]!=&&a[]&&a[]&&a[]&&a[])
return;
if(a[]+a[]+a[]+a[]!=&&a[]&&a[]&&a[]&&a[])
return;
if(t>)
{
if(a[]+a[]+a[]+a[]!=&&a[]&&a[]&&a[]&&a[])
return;
if(a[]+a[]+a[]+a[]!=&&a[]&&a[]&&a[]&&a[])
return;
if(t>)
{
if(a[]+a[]+a[]+a[]!=&&a[]&&a[]&&a[]&&a[])
return;
if(t==)
{
if(a[]+a[]+a[]+a[]!=&&a[]&&a[]&&a[]&&a[])
return;
if(a[]+a[]+a[]+a[]!=&&a[]&&a[]&&a[]&&a[])
return;
if(a[]+a[]+a[]+a[]!=&&a[]&&a[]&&a[]&&a[])
return;
if(a[]+a[]+a[]+a[]!=&&a[]&&a[]&&a[]&&a[])
return;
if(a[]+a[]+a[]+a[]!=&&a[]&&a[]&&a[]&&a[])
return;
for(re int i=;i<=;i++)
{
cout<<a[i]<<" ";
if(i%==)
cout<<endl;
}
cout<<endl;
return;
}
}
}
}
}
}
}
}
}
for(re int i=;i<=;i++)
{
if(!b[i])
{
b[i]=;
a[t]=i;
dfs(num+,t+);
b[i]=;
a[t]=;
}
}
}
int main()
{
cin>>s>>t;
a[(s-)*+t]=;
dfs(,);
}
【P1274】魔术数字游戏(搜索+剪枝+模拟)的更多相关文章
- P1274 魔术数字游戏 naive搜索+剪枝
真的naive...... 我把所有能剪的枝都剪了才过的.否则就是TTT 还有个很神奇的事:数组作为参数传进递归函数时会造成上一层函数里的数组的改变.这个我TM调了一天. 下面奉上代码 #includ ...
- 模拟--P1427 小鱼的数字游戏
题目描述 小鱼最近被要求参加一个数字游戏,要求它把看到的一串数字(长度不一定,以0结束,最多不超过100个,数字不超过2^32-1),记住了然后反着念出来(表示结束的数字0就不要念出来了).这对小鱼的 ...
- 【2020-8-21】【数字游戏】【启发式搜索IDA*】
有这么一个游戏: 写出一个1-N的排列a[i],然后每次将相邻两个数相加,构成新的序列,再对新序列进行这样的操作,显然每次构成的序列都比上一次的序列长度少1,直到只剩下一个数字位置.下面是一个例子: ...
- 不一样的猜数字游戏 — leetcode 375. Guess Number Higher or Lower II
好久没切 leetcode 的题了,静下心来切了道,这道题比较有意思,和大家分享下. 我把它叫做 "不一样的猜数字游戏",我们先来看看传统的猜数字游戏,Guess Number H ...
- NOIP2015 斗地主(搜索+剪枝)
4325: NOIP2015 斗地主 Time Limit: 30 Sec Memory Limit: 1024 MBSubmit: 270 Solved: 192[Submit][Status] ...
- bzoj:1666: [Usaco2006 Oct]Another Cow Number Game 奶牛的数字游戏
Description 奶牛们又在玩一种无聊的数字游戏.输得很郁闷的贝茜想请你写个程序来帮她在开局时预测结果.在游戏的开始,每头牛都会得到一个数N(1<=N<=1,000,000).此时奶 ...
- 【BZOJ1853】幸运数字(搜索,容斥)
[BZOJ1853]幸运数字(搜索,容斥) 题面 BZOJ 洛谷 题解 成功轰下洛谷rk1,甚至超越了一个打表选手 这题思路很明显吧,先搞出来所有范围内的合法数字,然后直接容斥, 容斥的话显然没有别的 ...
- Loj10164 数字游戏1
题目描述 科协里最近很流行数字游戏.某人命名了一种不降数,这种数字必须满足从左到右各位数字成小于等于的关系,如 123,446.现在大家决定玩一个游戏,指定一个整数闭区间 [a,b][a,b][a,b ...
- BZOJ2393 & 1853 [Scoi2010]幸运数字 【搜索 + 容斥】
题目 在中国,很多人都把6和8视为是幸运数字!lxhgww也这样认为,于是他定义自己的"幸运号码"是十进制表示中只包含数字6和8的那些号码,比如68,666,888都是" ...
随机推荐
- 【Python】Python获取命令行參数
有时候须要用同一个Python程序在不同的时间来处理不同的文件,此时假设老是要到Python程序中去改动输入.输出文件名称.就太麻烦了. 而通过Python获取命令行參数就方便多了.以下是我写得一个小 ...
- std::vector<std::vector<> >
上次看到这个有点晕了,其实这个vector保存的是std::vector<> #include <vector> #include <iostream> using ...
- Linq与扩展方法
使用数据集 /// <summary> /// 库房信息类 /// </summary> public class Kfxx { /// <summary> /// ...
- 【BZOJ1977】[BeiJing2010组队]次小生成树 Tree 最小生成树+倍增
[BZOJ1977][BeiJing2010组队]次小生成树 Tree Description 小 C 最近学了很多最小生成树的算法,Prim 算法.Kurskal 算法.消圈算法等等. 正当小 C ...
- Oracle中的in参数的个数限制
遇到了这个问题 “oracle中in参数个数限制”,这里记录下, in后括号中的参数个数有限制,Oracle 9i 中个数不能超过256,Oracle 10g个数不能超过1000. 当in的个数大于1 ...
- Vue表格中时间的处理
Vue中表格的数据应该来自后台数据库,然后从数据库中读取到的数据,时间格式可能有些不同,我们可以根据实际需要来对这个时间进行转化. 这里介绍一个js库,它提供了强大的日期处理功能,功能强大且只有2k大 ...
- python函数回顾:setattr()
描述 setattr 函数对应函数 getatt(),用于设置属性值,该属性必须存在. 语法 setattr 语法: setattr(object, name, value) 参数 object -- ...
- python生成器&迭代器
列表生成式 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 里每个值都加一 普通做法 a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]for index,i in e ...
- 斯坦福大学Andrew Ng - 机器学习笔记(6) -- 聚类 & 降维
大概用了一个月,Andrew Ng老师的机器学习视频断断续续看完了,以下是个人学习笔记,入门级别,权当总结.笔记难免有遗漏和误解,欢迎讨论. 鸣谢:中国海洋大学黄海广博士提供课程视频和个人笔记,在此深 ...
- sublime使用心得
1.ctrl + shift +p 命令面板 ---> toggle_side_bar 2.ctrl + shift +p 命令面板 --->reindent lines 3.ctrl + ...