NYOJ 简单数据结构
NYOJ 2 括号配对问题
栈的简单应用。可使用STL。
#include <iostream>
#include <cstdio>
#include <cstring>
#include <stack>
using namespace std;
const int maxn=+; char ch[maxn];
stack<char> s; bool deal()
{
while(!s.empty())
s.pop();
int len=strlen(ch);
for(int i=;i<len;i++)
{
if(ch[i]=='('||ch[i]=='[')
s.push(ch[i]);
else if(!s.empty()&&ch[i]==')')
{
if(s.top()=='(')
s.pop();
else
return ;
}
else if(!s.empty()&&ch[i]==']')
{
if(s.top()=='[')
s.pop();
else
return ;
}
else
return ;
}
return s.empty();
} int main()
{
int t;
scanf("%d",&t);
while(t--)
{
scanf("%s",ch);
if(deal())
printf("Yes\n");
else
printf("No\n");
}
return ;
}
NYOJ 5 Binary String Matching
简单模拟
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const int maxn=+; char a[maxn],b[maxn]; int deal()
{
int num=,j,len1,len2;
len1=strlen(a);
len2=strlen(b);
for(int i=;i<len2;i++)
{
j=;
while(a[i]==a[j])
{
i++;
j++;
}
if(j==len1)
{
num++;
j=;
}
i-=j;
}
return num;
} int main()
{
int t;
scanf("%d",&t);
while(t--)
{
scanf("%s%s",&a,&b);
printf("%d\n", deal());
}
return ;
}
NYOJ 63 小猴子下落
有规律
观察可知,每一层小猴子经过节点往下都是左右轮流。
并且,猴子I为奇数时在二叉树左半部分,偶数时在右半部分,到子结点的猴子数目逐层减半。
所以,我们只需根据I的大小,判断每一层猴子会去左右哪一边。
这里用到一个性质:左子结点编号=父节点*2,右结点编号=父节点*2+1.
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std; int main()
{
int d,n,ans;
while(scanf("%d%d",&d,&n)&&(d+n))
{
ans=;
while(--d)
{
if(n%==)
{
n/=;
ans=ans*+;
}
else
{
n=(n+)/;
ans=ans*;
}
}
printf("%d\n",ans);
}
return ;
}
NYOJ 93 汉诺塔(三)
简单模拟
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const int maxn=; struct node
{
int len;
int s[maxn];
}h[]; int n,p; void init()
{
h[].len=h[].len=h[].len=-;
for(int i=n;i>=;i--)
h[].s[++h[].len]=i;
} int deal()
{
int x,y,xx,yy,f=;
for(int i=;i<p;i++)
{
scanf("%d%d",&x,&y);
if(f)
continue ;
if(h[x].len!=-)
{
xx=h[x].len;yy=h[y].len;
if(yy!=-&&h[y].s[yy]<h[x].s[xx])
f=;
else
{
h[x].len--;
h[y].len++;
h[y].s[yy+]=h[x].s[xx];
}
}
else
f=;
}
return !f;
} int main()
{
int t;
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&n,&p);
init();
if(deal())
printf("legal\n");
else
printf("illegal\n");
}
return ;
}
NYOJ 简单数据结构的更多相关文章
- python学习总结----简单数据结构
mini-web服务器 - 能够完成简单的请求处理 - 使用http协议 - 目的:加深对网络编程的认识.为后面阶段学习web做铺垫 简单数据结构 - 排列组合 import itertools # ...
- 牛客练习赛22-E.简单数据结构1(扩展欧拉定理降幂 +树状数组)
链接:E.简单数据结构1 题意: 给一个长为n的序列,m次操作,每次操作: 1.区间加 2.对于区间,查询 ,一直到- 请注意每次的模数不同. 题解:扩展欧拉定理降幂 对一个数p取log(p)次的 ...
- [LOJ#2326]「清华集训 2017」简单数据结构
[LOJ#2326]「清华集训 2017」简单数据结构 试题描述 参加完IOI2018之后就是姚班面试.而你,由于讨厌物理.并且想成为乔布斯一样的创业家,被成功踢回贵系. 转眼,时间的指针被指向201 ...
- 简单数据结构题(from 钟子谦——IOI2018集训队自选题)
简单数据结构题(from 钟子谦--IOI2018集训队自选题) 试题描述 给一棵 \(n\) 个点的树,点权开始为 \(0\) ,有 \(q\) 次操作,每次操作是选择一个点,把周围一圈点点权 \( ...
- 简单数据结构———AVL树
C - 万恶的二叉树 Crawling in process... Crawling failed Time Limit:1000MS Memory Limit:32768KB 64b ...
- 冬训day3 简单数据结构
A - 简单计算器 模拟加栈..写一写就好,从头到尾扫一遍,分两个栈存,一个存运算符,一个存中间结果,遇到乘除就先处理了,每次遇到加减就处理上一个加减的两个数,结果压进去...同时把这个运算符存进去. ...
- Test 6.29 T4 简单数据结构练习
问题描述 费了一番功夫,神犇 CJK 终于完成了前三道题目."不错,不愧是新一代神犇啊!" JesseLiu 满意地说道,"不过,你在算法方面的功底固然不错.对于数据结构 ...
- [Contest20171102]简单数据结构题
给一棵$n$个点的数,点权开始为$0$,有$q$次操作,每次操作选择一个点,把周围一圈点点权$+1$,在该操作后你需要输出当前周围一圈点点权的异或和. 由于输出量较大,设第$i$个询问输出为$ans_ ...
- UOJ228 简单数据结构练习题
Description 传送门 维护一个数列, 有以下操作: 对[l,r]同时加上x 把[l,r]开根后下取整. 查询[l,r]之和 n,m \(\leq\)$ 100000, $\(a_i,x \l ...
随机推荐
- 微信小程序清除默认样式
1.清除button的默认样式 button::after{border:none;}input{outline:none;border:none;list-style: none;}
- mpvue项目中安装weui
观察一下发现,mpvue项目打包css的规律是:根组件App.vue里的style样式全部打包到 dist / static / css / app.wxss .. 参照微信小程序的原生引入使 ...
- ES6初识-函数扩展
默认值 function test(x,y='world'){ console.log('默认值'); } function test2(...arg){ for(let v of arg){ con ...
- 【学时总结】◆学时·V◆ 逆元法
◆学时·V◆ 逆元法 □算法概述□ 逆元运算是模运算中的一个技巧,一般用于解决模运算的除法问题.模运算对于加.减.乘是有封闭性的,即 (a±b)%m=a%m±b%m,以及 (a×b)%m=a%m×b% ...
- nginx虚拟主机搭建
nginx [engine x]是 Igor Sysoev 编写的一个 HTTP 和反向代理服务器,另外它也可以 作为邮件代理服务器. 它已经在众多流量很大的俄罗斯网站上使用了很长时间,这些网站包括 ...
- pywinauto 的使用
要用python实现Windows窗口程序的自动化操作,可以用ctypes调用windowsapi来实现,还可以用pywin32+pywinauto来实现,后者是别人造的轮子. pywinauto首页 ...
- 【Effective C++ 读书笔记】条款04:确定对象使用前已先被初始化
永远在使用对象之前先将它初始化.对于无任何成员的内置类型,你必须手工完成此事. 至于内置类型以外的任何其他东西,初始化责任落在构造函数身上.规则很简单:确保每一个构造函数都将对象的每一个成员初始化. ...
- 一行代码搞定checkbox全选和全不选
<!DOCTYPE html><html> <head> <meta charset="utf-8" /> <title> ...
- My jdbc 错误
jdbc mysql插入数据提示Parameter index out of range (1 > number of parameters, which is 0). SqlStatement ...
- 数据结构学习-BST二叉查找树 : 插入、删除、中序遍历、前序遍历、后序遍历、广度遍历、绘图
二叉查找树(Binary Search Tree) 是一种树形的存储数据的结构 如图所示,它具有的特点是: 1.具有一个根节点 2.每个节点可能有0.1.2个分支 3.对于某个节点,他的左分支小于自身 ...