1. 银行取款

【题目描述】

在现代文明社会中,大家在诸如银行办理业务、车站买票等活动时都很文明没有插队的现象,本着“先来先服务”的规矩。

新年马上到了,明明的爸爸打算上银行去取点钱,带着一向表现很好的明明同学到三亚旅游,明明的爸爸到银行时发现很多人在办理业务,明明的爸爸就自觉地在排队机上去了一个业务号码,并焦急的等待着银行柜台叫自己的号码......

【输入文件】

输入文件名:bank.in

输入中包含I(表示等待办理业务)和顾客的序号,或者 O(表示办理完业务的人离开);

输入数据不超过100行。

【输出文件】

输出文件名:bank.out

输出银行排队中出队顾客序列,若队列为空(没人等待),则输出“None”

【样例输入】

O

I 1

I 2

O

I 3

O

O

O

【样例输出】

None

1

2

3

None

#include <iostream>
using namespace std;
int main(){
int q[]={};
int head ,tail;
head = tail = ;
char ch;
while(cin >> ch){
if(ch == 'O'){
if (head >= tail)
cout<<"None"<<endl;
else {
cout<<q[head]<<endl;
head++;
}
}
if(ch == 'I'){
tail++;
cin >> q[tail];
}
}
return ;
}

2.选小寿星

【问题描述】

五年级一班有一个传统,全班一起庆祝当月过生日的同学。有m名学生都是11月份过生日,班主任决定挑一名学生作为寿星代表切蛋糕。班主任将过生日的m名学 生随机围成一个圈,从1到m进行编号。随机挑一个数字n(1<=n<=9),从第一个同学开始连续报数,报数到n的同学就出局,然后从下一位 同学重新开始报数,一直到剩下最后一名同学。由于女生少,班主任决定每个女生有2次机会,也就是说,每名女生第2次数到n时才出局。

例如,m=3,其中有1名女生,编号顺序为1,2,3,分别是男,女,男,n=2。第一轮报数,报到的是2号女生,暂不出局(注:女生有2次机会)。第二轮报数, 3号男生报1,1号男生报2出局。第三轮报数,2号女生报1,3号男生报2出局,最后留下2号女生。 有m=5,其中2名女生,编号顺序为1,2,3,4,5,分别为男,男,女,女,男。n=3。挑选后的结果是5号,男生。(注:女生有2次机会)

【输入文件】 文件名:choice.in

文件中第一行输入数字为m,表示有m个人,m<20; 第二行是m个整数,1代表男生,0代表女生。 第三行是n,表示n是出局数字。(注意:女生有2次机会)

【输出文件】 文件名:choice.out     输出留下学生的序号。

【样例输入】

5

1 1 0 0 1

3

【样例输出】

5

#include <iostream>
using namespace std;
int main(){
int a[];
int n,m,t;
cin >> n;
int count = n;
int s = ;
for(int i = ;i <n;i++){
cin >> t;
if(t == ){
a[i] = ;
}else{
a[i] = ;
}
}
cin >> m;
int i = ;
while(count > ){
if(a[i] >){
s++;
}
if(s == m){
a[i]--;
if(a[i] == ){
count--;
}
s = ;
}
i++;
i%=n;
}
for(i = ;i <n;i++){
if(a[i]){
cout << i + << endl;
}
}
return ;
}

1.Blash数集

【题目描述】

大数学家高斯小时候偶然间发现一种有趣的自然数集合Blash,对应以a为基的集合Ba定义如下:
(1)a是集合Ba的基,且a是Ba的第一个元素;
(2)如果x在集合Ba中,则2x+1和3x+1也都在集合Ba中;
(3)没有其他元素在集合Ba中了。
现在小高斯想知道如果将集合Ba中元素按照升序排列,第n个元素会是多少?

【输入格式】输入包含很多行,每行输入包括两个数字,集合的基a(1<=a<=50)以及所求元素序号n(1<=n<=1000000)。

【输出格式】对应每个输入,输出集合Ba的第n个元素值。

【样例输入】

1 100
  28 5437

【样例输出】

418

900585

#include<iostream>
using namespace std;
const int N = ;
int a,n,q[N];
void blash(int a,int n) {
q[] = a;
int tail = ,head2,head3;
head2 = head3 = ;
while(tail <= n) {
long long x = *q[head2]+;
long long y = *q[head3]+;
if(x < y) {
q[++tail] = x;
head2++;
} else {
if(x > y) {
q[++tail] = y;
head3++;
} else {
q[++tail] = x;
head2++;
head3++;
}
}
}
cout << q[n] << endl;
}
int main() {
while(cin >> a >> n) {
blash(a,n);
}
return ;
}

2.移动的小球

【问题描述】

你有一些小球,从左到右依次编号为1,2,3,…,n,你可以执行两种指令。其中A X Y表示把小球X移动到小球Y左边,B X Y表示把小球X移动到小球Y右边。指令保证合法,即X不等于Y。
输入:小球个数n。指令条数m和m条指令,注意,1≤n≤500000,0≤m≤100000。
输出: 从左到右输出最后的小球序列。
【样例输入】
 6 2
 A 1 4
 B 3 5
【样例输出】
 2 1 4 5 3 6

#include <iostream>
using namespace std;
const int N = ;
int n,A[N];
int find(int X) {
for(int i = ; i <= n; i++)
if(A[i] == X) return i;
return ;
}
void left(int a, int b) {
int t = A[a-];
for(int i = a; i <= b; i++) {
A[i-] = A[i];
}
A[b] = t;
}
void right(int a, int b) {
int t = A[a];
for(int i = a; i >= b; i--) {
A[i+] = A[i];
}
A[b] = t;
}
int main() {
int m, X, Y, p, q;
char type;
cin >> n >> m;
for(int i = ; i <= n; i++)
A[i] = i;
for(int i = ; i <= m; i++) {
cin >> type >> X >> Y;
p = find(X);
q = find(Y);
if(type == 'A') {
if(q > p)
left(p+, q-);
else right(p-, q);
} else {
if(q > p)
left(p+, q);
else right(p-, q+);
}
}
for(int i = ; i <= n; i++) {
cout << A[i] << " ";
}
cout << endl;
return ;
}

noip第18课作业的更多相关文章

  1. noip第29课作业

    1.   钢条切割 [问题描述] 一家公司购买长钢条,将其切割成短钢条出售,切割本身没有成本,长度为i的短钢条的价格为Pi.那给定一段长度为n的钢条和一个价格表Pi,求钢条的切割方案使得收益Rn最大. ...

  2. noip第16课作业

    1. 猴子吃桃 [问题描述] 猴子第一天摘了若干个桃子,当即吃了一半,还不解馋,又多吃了一个:第二天,吃剩下的桃子的一半,还不过瘾,又多吃了一个:以后每天都吃前一天剩下的一半多一个,到第10天想再吃时 ...

  3. noip第5课作业

    1.     计算税收 [问题描述] 对某产品征收税金,在产值1万元以上收税5%:在1万元以下但在5000元或者以上的征收税3%:在5000元以下但在1000元或以上征收税2%:1000元以下的免收税 ...

  4. noip第9课作业

    1.    打印乘法表 [问题描述] 用for循环实现输出1至9的乘法表 [样例输出] 1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4 ...

  5. noip第7课作业

    1.    求平均值 [问题描述] 在一次运动会方队表演中,学校安排了十名老师进行打分.对于给定的每个参赛班级的不同打分(百分制整数),按照去掉一个最高分.去掉一个最低分,再算出平均分的方法,得到改班 ...

  6. noip第18课资料

  7. noip第34课作业

    1.    信息加密 [问题描述] 在传递信息的过程中,为了加密,有时需要按一定规则将文本转换成密文发送出去.有一种加密规则是这样的:1. 对于字母字符,将其转换成其后的第3个字母.例如:A→D,a→ ...

  8. noip第33课作业

    1.    排座椅 [问题描述] 上课的时候总会有一些同学和前后左右的人交头接耳,这是令小学班主任十分头疼的一件事情.不过,班主任小雪发现了一些有趣的现象,当同学们的座次确定下来之后,只有有限的D对同 ...

  9. noip第28课作业

    分段数列 [问题描述] 对于给定的一个长度为N的正整数数列A[i],现要将其分成连续的若干段,并且每段和不超过M(可以等于M),问最少能将其分成多少段使得满足要求. 输入格式: 输入第1行包含两个正整 ...

随机推荐

  1. Jenkins发送邮件,邮件正文嵌套的html中文显示乱码

    解决方案: 1.添加系统变量.变量名:JAVA_TOOL_OPTIONS变量值:-Dfile.encoding=UTF8 2.打开jenkins,系统管理--系统设置,在全局属性处勾选Environm ...

  2. linux 管道符与通配符

    ###管道符 *命令格: 命令1 | 命令2 //命令1的正确输出作为命令2的操作对象 ll | more netstat -an | grep xxx 通配符 类似于正则表达式 ? 一个以上 [] ...

  3. hdu 5493 (2015合肥网赛) Queue

    题目;http://acm.hdu.edu.cn/showproblem.php?pid=5493 题目大意,t组数据,n个人,n行每行分别是人的身高和这个人的左边或右边比他高的人的个数,输出符合条件 ...

  4. nested exception is java.lang.NoClassDefFoundError: org/springframework/dao/support/PersistenceExceptionTranslator

    该问题是少了一个spring-tx-的jar包,把该包加入到buildpath中就行了. 参考链接:http://blog.csdn.net/Rongbo_J/article/details/4666 ...

  5. cent 7 安装VNC

    1. yum install tigervnc-server; 2.cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncs ...

  6. Tomcat优化详细1

    在Tomcat和应用程序进行了压力测试后,如果您对应用程序的性能结果不太满意,就可以采取一些性能调整措施了,当然了前提是应用程序没有问题,我们这里只讲Tomcat的调整.由于Tomcat的运行依赖于J ...

  7. 使用 IntelliTrace 调试应用程序

    IntelliTrace 如何能够大幅改善您的日常开发活动,并提升您快速轻松诊断问题的能力,而不必重新启动应用程序和使用传统的“中断-单步执行-检查”技术进行调试.介绍了组织如何能够通过在测试过程中收 ...

  8. 基于Web Service的客户端框架搭建一:C#使用Http Post方式传递Json数据字符串调用Web Service

    引言 前段时间一直在做一个ERP系统,随着系统功能的完善,客户端(CS模式)变得越来越臃肿.现在想将业务逻辑层以下部分和界面层分离,使用Web Service来做.由于C#中通过直接添加引用的方来调用 ...

  9. CRC在线计算工具

    http://www.lammertbies.nl/comm/info/crc-calculation.html

  10. LCA(最近公共祖先)模板

    Tarjan版本 /* gyt Live up to every day */ #pragma comment(linker,"/STACK:1024000000,1024000000&qu ...