摘要:
DFS;判断平衡;平衡是指各个子节点都需要平衡,然后若成立则YES 不成立则NO;递归的输入然后直接判断即可。若左子树的重量未确定,则向左递归;若右子树未确定,则向右递归;直到底层判断节点是否平衡,然后向上返回整个的重量,层层回溯,然后判断 相应层是否平衡。#include
#include
#include
#include
#include
#include
#include
using namespace std;
bool flag;
int dfs()
{
int a, l1, b, l2;
scanf("%d%d%d%d",&a,&l1,& 阅读全文
摘要:
纯模拟题 用vector型的vector模拟,我用了一个p数组适当优化了效率,用p数组记录对应编号牌的位置;题目大意:在早期人工智慧的領域中常常會用到機器人,在這個問題中有一支機器手臂接受指令來搬動積木,而你的任務就是輸出最後積木的情形。一開始在一平坦的桌面上有n塊積木(編號從0到n-1)0號積木放在0號位置上,1號積木放在1號位置上,依此類推。機器手臂有以下幾種合法搬積木的方式(a和b是積木的編號):move a onto b在將a搬到b上之前,先將a和b上的積木放回原來的位置(例如:1就放回1的最開始位罝)move a over b在將a搬到b所在的那堆積木之上之前,先將a上的積木放回原來 阅读全文
摘要:
#include
#include
#include
#include
#include
#include
#include
using namespace std;
const int MAXN=25;
bool a[MAXN];
int main()
{ int n, i, j, p, q,k, m, sum; while(scanf("%d%d%d",&n,&k,&m)!=EOF) { if(n==0&&k==0&&m==0) break; sum=0; memset(a,0,sizeof(a)); ... 阅读全文
摘要:
栈的超级水题 直接模拟#include
#include
#include
using namespace std;
const int MAXN=150;
char s[MAXN], stack[MAXN];
int main()
{ int t, i, j, top; scanf("%d%*c",&t); while(t--) { gets(s); top=-1; for(i=0; i=0) { if(stack[top]=='('&&s[i]==')'|... 阅读全文