NOIP2016考试小结

DAY 1

T1

题目描述

小南有一套可爱的玩具小人, 它们各有不同的职业。

有一天, 这些玩具小人把小南的眼镜藏了起来。 小南发现玩具小人们围成了一个圈,它们有的面朝圈内,有的面朝圈外。如下图:

这时singer告诉小南一个谜題: “眼镜藏在我左数第3个玩具小人的右数第1个玩具小人的左数第2个玩具小人那里。 ”

小南发现, 这个谜题中玩具小人的朝向非常关键, 因为朝内和朝外的玩具小人的左右方向是相反的: 面朝圈内的玩具小人, 它的左边是顺时针方向, 右边是逆时针方向; 而面向圈外的玩具小人, 它的左边是逆时针方向, 右边是顺时针方向。

小南一边艰难地辨认着玩具小人, 一边数着:

singer朝内, 左数第3个是archer。

archer朝外,右数第1个是thinker。

thinker朝外, 左数第2个是writer。

所以眼镜藏在writer这里!

虽然成功找回了眼镜, 但小南并没有放心。 如果下次有更多的玩具小人藏他的眼镜, 或是谜題的长度更长, 他可能就无法找到眼镜了 。 所以小南希望你写程序帮他解决类似的谜題。 这样的谜題具体可以描述为:

有 n个玩具小人围成一圈, 已知它们的职业和朝向。现在第1个玩具小人告诉小南一个包含 m条指令的谜題, 其中第 z条指令形如“左数/右数第 s,个玩具小人”。 你需要输出依次数完这些指令后,到达的玩具小人的职业。

输入输出格式

输入格式:

输入的第一行包含西个正整数 n,m, 表示玩具小人的个数和指令的条数。

接下来 n行, 每行包含一个整数和一个字符串, 以逆时针为顺序给出每个玩具小人的朝向和职业。其中0表示朝向圈内, 1表示朝向圈外。保证不会出现其他的数。字符串长度不超过10且仅由小写字母构成, 字符串不为空, 并且字符串两两不同。 整数和字符串之问用一个空格隔开。

接下来 m行,其中第 z行包含两个整数 a,,s,,表示第 z条指令。若 a,= 0,表示向左数 s,个人;若a,= 1 ,表示向右数 s,个人。保证a,不会出现其他的数, 1≤ s,<n 。

输出格式:

输出一个字符串, 表示从第一个读入的小人开始, 依次数完 m条指令后到达的小人的职业。

输入输出样例

输入样例#1

7 3

0 singer

0 reader

0 mengbier

1 thinker

1 archer

0 writer

1 mogician

0 3

1 1

0 2

输出样例#1

writer

输入样例#2

10 10

1 C

0 r

0 P

1 d

1 e

1 m

1 t

1 y

1 u

0 V

1 7

1 1

1 4

0 5

0 3

0 1

1 6

1 2

0 8

0 4

/*话说noip出个水题容易吗!我还做错了,这么简单的题,考试的时候我在想啥来呀……完全不知道自己当时是啥状态。
这个题,,,没啥思路*/
#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#define maxn 100100 using namespace std;
int n,m,u,ans,t;
int a[maxn],b[maxn],pos,tot;
struct node{
int u,w; string s;
}e[maxn*2]; int main()
{
cin>>n>>m;
pos=1;
for(int i=1;i<=n;i++)
{
cin>>e[i].u>>e[i].s;
e[i].w=i;
}
for(int i=1;i<=m;i++)
{
cin>>a[i]>>b[i];
if(a[i]==0)
{
if(e[pos].u==0)
{
if(pos>b[i])
pos=pos-b[i];
else
pos=n-(b[i]-pos);
}
else
{
if(pos+b[i]<=n)
pos=pos+b[i];
else
pos=pos+b[i]-n;
}
}
if(a[i]==1)
{
if(e[pos].u==0)
{
if(pos+b[i]<=n)
pos=pos+b[i];
else
pos=pos+b[i]-n;
}
else
{
if(pos>b[i])
pos=pos-b[i];
else
pos=n-(b[i]-pos);
}
}
}
cout<<e[pos].s<<endl;
return 0;
}

DAY 2

T1

题目描述

组合数表示的是从n个物品中选出m个物品的方案数。举个例子,从(1,2,3) 三个物品中选择两个物品可以有(1,2),(1,3),(2,3)这三种选择方法。根据组合数的定 义,我们可以给出计算组合数的一般公式:

其中n! = 1 × 2 × · · · × n

小葱想知道如果给定n,m和k,对于所有的0 <= i <= n,0 <= j <= min(i,m)有多少对 (i,j)满足是k的倍数。

输入输出格式

输入格式:

第一行有两个整数t,k,其中t代表该测试点总共有多少组测试数据,k的意义见 【问题描述】。

接下来t行每行两个整数n,m,其中n,m的意义见【问题描述】。

输出格式:

t行,每行一个整数代表答案。

输入输出样例

输入样例#1

1 2

3 3

输出样例#1

1

输入样例#2

2 5

4 5

6 7

输出样例#2

0

7

说明

【样例1说明】

在所有可能的情况中,只有是2的倍数。

/*这个题在考场上的时候想了很久质因数分解,然后觉得跟暴力差不多分吧,最后还是打的暴力,结果被自己好坑……平时喜欢用的打表考试也敢没用2333 唉,真悲剧。
思路:一道组合数的dp问题,f[i][j]表示Cij mod k,val[x]记录的是x这个数中有多少j(x>=j)满足Cxj mod k==0。可以得出递推式:若这个不选,则从f[i-1][j]转移过来。若选,就从f[i-1][j-1]转移过来。dp[i][j]表示Cij mod k==0的方案数。
dp[i][j]中别忘了处理i==j的情况。*/ #include<iostream>
#include<cstdio>
#include<cstring> using namespace std;
int n,k,t,m;
int i,j;
int f[2001][2001],dp[2001][2001],val[2001]; int init()
{
int x=0,f=1;char c=getchar();
while(c>'9'||c<'0'){if(c=='-')f=-1;c=getchar();}
while(c>='0'&&c<='9'){x=x*10+c-'0';c=getchar();}
return x*f;
} int main()
{
t=init();k=init();
f[0][0]=1;
for(i=1;i<=2001;i++)
{
f[i][0]=1;
for(j=1;j<=2001;j++)
{
f[i][j]=(f[i-1][j]+f[i-1][j-1])%k;
if(f[i][j]==0)val[i]++;
dp[i][j]=dp[i-1][j]+val[i];
if(i==j) dp[i][j]=dp[i-1][j-1]+val[i];
}
}
while(t--)
{
n=init();m=init();
m=min(n,m);
printf("%d\n",dp[n][m]);
}
return 0;
}
/*总结:
从6月份开始正式开始学oi,到现在已经有半年了。说句实在话,我自认为我的效率是非常低的,因为学哥们在跟我学到相同时间的时候水平是比我高的(在第一次去日照的时候见识到了)。所以我对自己比较不满意。
这次考试本来没怎么放在心上,就是去试试。但是通过这次考试暴露出来的一系列问题让我非常“恐慌”。
首先我的得分我比较无语,才82分,学校里好像基本没有个第一题写挂的。对于这一点我发现了自己存在的两个问题:第一是基础不牢,平时的关注点总是在一些高级算法和数据结构上,所以代码实现能力很弱。第二是因为考场上思维打不开,总是主观臆断,考虑不全。考完试后第一题我读了10分钟就找出了错误,这就很尴尬了……
另外就是我平常的一些学习习惯,缺乏自主的思考和纠错,总是依赖学长,让自己的思维和能力提不上去。
还有最重要的一点是在这一段时间里,说实话,我缺乏对oi的兴趣和热情,让我学下去的动力只不过是满满的功利性。
但是现在,我逐渐的发现了oi的有趣的一面,开始喜欢它了,我找到了我的问题所在,相信以后我会更加努力,学到更多东西的。*/

  

 

noip2016 小结(ac两题+学习总结)的更多相关文章

  1. 清橙A1206.小Z的袜子 && CF 86D(莫队两题)

    清橙A1206.小Z的袜子 && CF 86D(莫队两题) 在网上看了一些别人写的关于莫队算法的介绍,我认为,莫队与其说是一种算法,不如说是一种思想,他通过先分块再排序来优化离线查询问 ...

  2. 2-SAT两题

    看了大白书,学习了一下two-sat,很有意思的算法.题目就是大白书上的两题. 仅仅放一下代码作为以后的模板参考. #include <stdio.h> #include <algo ...

  3. MIPS Pwn赛题学习

    MIPS Pwn writeup Mplogin 静态分析   mips pwn入门题. mips pwn查找gadget使用IDA mipsrop这个插件,兼容IDA 6.x和IDA 7.x,在ID ...

  4. MT【249】离心率两题

    椭圆$\dfrac{x^2}{a^2}+\dfrac{y^2}{b^2}=1,(a>b>0)$的一个焦点为$F$,过$F$的直线交椭圆于$A,B$两点,$M$是点$A$关于原点的对称点.若 ...

  5. 最近切的两题SCC的tarjan POJ1236 POJ2186

    两题都是水题,1236第一问求缩点后入度为0的点数,第二问即至少添加多少条边使全图强连通,属于经典做法,具体可以看白书 POJ2186即求缩点后出度为0的那个唯一的点所包含的点数(即SCC里有多少点) ...

  6. MySQL数据分析(7)-SQL的两大学习框架

    大家好,我是jacky,很高兴继续跟大家分享<MySQL数据分析实战>课程,前面的课程基本上我把MySQL的原理都做了一定的介绍,有好多朋友说学习MySQL是没有逻辑的,其实jacky是非 ...

  7. 学习javascript,您将发现以下两个学习指南

    学习javascript,您将发现以下两个学习指南,一个是初学者的,另一个是茄子一号经验丰富的程序员和Web开发人员的.你想学习javascript并对它有兴趣.我想这就是你来这里的原因,你做了一个明 ...

  8. BZOJ 3680: 吊打XXX【模拟退火算法裸题学习,爬山算法学习】

    3680: 吊打XXX Time Limit: 10 Sec  Memory Limit: 128 MBSec  Special JudgeSubmit: 3192  Solved: 1198[Sub ...

  9. 27号华为笔试(三道ac两道)

    三道题目case:100,100,0: 三个题目: 前两个都全部ac了,第三题没时间: 记录一下大概的思路: 第一题 主要通过Java中的字符串处理函数:然后控制字符串输入格式: 卡bug的点: 1: ...

随机推荐

  1. java中检测-在运行时指定对象是否是特定类的一个实例---关键字 instanceof

    java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例.instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例. if(requ ...

  2. 【IntelliJ】IntelliJ IDEA的安装破解及使用

    结合两位大牛CV的,写的很全面,仅供自己使用 转载地:http://www.jianshu.com/p/ad3830095fb3 https://www.cnblogs.com/kangjianwei ...

  3. Redis事务【十二】

    一.概述: 和众多其它数据库一样,Redis作为NoSQL数据库也同样提供了事务机制.在Redis中,MULTI/EXEC/DISCARD/WATCH这四个命令是我们实现事务的基石.相信对有关系型数据 ...

  4. Linux下汇编语言学习笔记45 ---

    这是17年暑假学习Linux汇编语言的笔记记录,参考书目为清华大学出版社 Jeff Duntemann著 梁晓辉译<汇编语言基于Linux环境>的书,喜欢看原版书的同学可以看<Ass ...

  5. hunnu - 11545 小明的烦恼——找路径 (最大流)

    http://acm.hunnu.edu.cn/online/?action=problem&type=show&id=11545 只是要求不经过相同的边,那么每次找出一条增广路T-- ...

  6. .net 程序集保护与破解

    一.保护方法(强签名.混淆.加壳) 强名称是由程序集的标识加上公钥和数字签名组成的.其中,程序集的标识包括简单文本名称.版本号.区域性信息(如果提供的话).语言文化信息.处理器架构信息.强名称是使用相 ...

  7. TCP/IP协议族-----22、万维网和HTTP

  8. Python学习系列之异常处理

    什么是异常处理 python内置了一套try···except···finally的错误处理机制 当程序出错的时候进行捕捉,然后根据捕捉到的错误信息进行响相应的处理 常用的内建异常 初识异常处理 如例 ...

  9. uva 439 Knight Moves 骑士移动

    这道题曾经写过,bfs.用队列,不多说了,上代码: #include<stdio.h> #include<stdlib.h> #include<string.h> ...

  10. react 项目实战(八)图书管理与自动完成

    图书管理 src / pages / BookAdd.js   // 图书添加页 /** * 图书添加页面 */ import React from 'react'; // 布局组件 import H ...