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 简单数据结构的更多相关文章

  1. python学习总结----简单数据结构

    mini-web服务器 - 能够完成简单的请求处理 - 使用http协议 - 目的:加深对网络编程的认识.为后面阶段学习web做铺垫 简单数据结构 - 排列组合 import itertools # ...

  2. 牛客练习赛22-E.简单数据结构1(扩展欧拉定理降幂 +树状数组)

    链接:E.简单数据结构1 题意: 给一个长为n的序列,m次操作,每次操作: 1.区间加 2.对于区间,查询 ,一直到- 请注意每次的模数不同.   题解:扩展欧拉定理降幂 对一个数p取log(p)次的 ...

  3. [LOJ#2326]「清华集训 2017」简单数据结构

    [LOJ#2326]「清华集训 2017」简单数据结构 试题描述 参加完IOI2018之后就是姚班面试.而你,由于讨厌物理.并且想成为乔布斯一样的创业家,被成功踢回贵系. 转眼,时间的指针被指向201 ...

  4. 简单数据结构题(from 钟子谦——IOI2018集训队自选题)

    简单数据结构题(from 钟子谦--IOI2018集训队自选题) 试题描述 给一棵 \(n\) 个点的树,点权开始为 \(0\) ,有 \(q\) 次操作,每次操作是选择一个点,把周围一圈点点权 \( ...

  5. 简单数据结构———AVL树

    C - 万恶的二叉树 Crawling in process... Crawling failed Time Limit:1000MS     Memory Limit:32768KB     64b ...

  6. 冬训day3 简单数据结构

    A - 简单计算器 模拟加栈..写一写就好,从头到尾扫一遍,分两个栈存,一个存运算符,一个存中间结果,遇到乘除就先处理了,每次遇到加减就处理上一个加减的两个数,结果压进去...同时把这个运算符存进去. ...

  7. Test 6.29 T4 简单数据结构练习

    问题描述 费了一番功夫,神犇 CJK 终于完成了前三道题目."不错,不愧是新一代神犇啊!" JesseLiu 满意地说道,"不过,你在算法方面的功底固然不错.对于数据结构 ...

  8. [Contest20171102]简单数据结构题

    给一棵$n$个点的数,点权开始为$0$,有$q$次操作,每次操作选择一个点,把周围一圈点点权$+1$,在该操作后你需要输出当前周围一圈点点权的异或和. 由于输出量较大,设第$i$个询问输出为$ans_ ...

  9. UOJ228 简单数据结构练习题

    Description 传送门 维护一个数列, 有以下操作: 对[l,r]同时加上x 把[l,r]开根后下取整. 查询[l,r]之和 n,m \(\leq\)$ 100000, $\(a_i,x \l ...

随机推荐

  1. P3391 【模板】文艺平衡树(Splay)

    Splay #include<cstdio> #include<algorithm> #include<iostream> using namespace std; ...

  2. CDH4.5.0下安装lzo

    参考 http://www.cloudera.com/content/cloudera-content/cloudera-docs/Impala/1.0.1/Installing-and-Using- ...

  3. 使用Newtonsoft.json 解决 Asp.Net MVC DateTime类型数据Json格式化问题

    解决思路 众所周知,MVC中调用的微软的组件JavaScriptSerialer...,格式DateTime类型数据需要在客户端专门解. 还知道,NewtonSoft.json可以“正确”的格式化Da ...

  4. 数据库MySQL基本介绍安装使用及文件导入导出

    1.数据库(data base) 1.1 简述 把文件存储在一台电脑上(服务器),其他电脑用户可以通过账号密码登陆,通过网络去访问这台电脑上的文件,但是由于每个人的数据是不同的,所以你只能通过自己的账 ...

  5. 微信H5单页面滑动的时候如何避免出界,出现头部和底部的黑底?

    ios系统微信浏览器.safari浏览器中h5页面上拉下滑导致悬浮层脱离窗口的解决方法 ios偶现下拉出现黑底时,界面第一次上拉时拉不动的解决方案: document.querySelector('# ...

  6. shell编程中的vim命令说明

    vim命令模式:  1.一般命令模式 2.编辑模式 3.底行命令行命令模式 一般命令模式 直接用字符操作编辑模式 可以写文档(跟txt有点像)底行命令模式 先按'ESC',在按下“:”,之后在输出命令 ...

  7. Delphi的Edit控件中只能输入数字且只能输入一个小数点

    使用这种功能必须使用 OnKeyPress 事件,该事件是在窗体中获得键盘输入的焦点,并且在用户按键时发生.OnKeyPress 事件中有个重要参数:Key.Key 参数为Char 型,它能够获得用户 ...

  8. Win10上Anaconda环境下python3.6安装和使用pyinstaller

    一.安装步骤 1. 电脑是win10,安装的Python3.6 2. 在Scripts文件夹下执行pip install pyinstaller, 安装成功后下载pyinstaller安装包,解压之后 ...

  9. 将 cmd 中命令输出内容保存为 TXT 文本文件

    如果执行的命令输出内容较多,那么 cmd 控制台将会自动清除前面的内容,那么如何将屏幕的所有内容导出到文本文件? 下面给出简单的演示例子 ping百度,不会自动结束,按 Ctrl+C 强制结束,pin ...

  10. python json.dumps raise TypeError(repr(o) + " is not JSON serializable") TypeError: 0 is not JSON serializable

    出错如题. 这个问题有可能是因为python的json.dumps没法识别dump内容里的某些数据类型导致的.我的问题是因为dict中含有numpy.int64,numpy.float等类型导致的,需 ...