noip2016 小结(ac两题+学习总结)
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 100100using 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];elsepos=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];elsepos=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的有趣的一面,开始喜欢它了,我找到了我的问题所在,相信以后我会更加努力,学到更多东西的。*/
转载于:https://www.cnblogs.com/L-Memory/p/6131238.html
noip2016 小结(ac两题+学习总结)相关推荐
- 手机号正则_一起刷题学习正则表达式
在我最开始学习正则表达式的时候看到一堆符号简直头晕,所以很长一段时间我都是百度一下某某正则怎么写,比如:匹配所有手机号码的正则,但是有时候工作中碰到的一些问题网上搜不到,这就尴尬了,后面还是逼着自己花 ...
- CTF MISC在我眼里各种奇奇怪怪的题学习思路总结(持续更新)
系列文章目录 MISC:图片隐写简单题学习思路总结(持续更新) CTF Crypto简单题学习思路总结(持续更新) 文章目录 系列文章目录 前言 一.二维码 1.1 QR码 1.2 Maxicode码 ...
- CTF MISC图片隐写简单题学习思路总结(持续更新)
系列文章目录 第一篇文章: CTF Crypto简单题学习思路总结(持续更新) 文章目录 系列文章目录 前言 一.JPG类隐写 1.1 JPG文件末尾添加字符串 1.2 JPG文件中添加字符串 1.3 ...
- 《用两天学习光线追踪》3.球体和表面法向量
本项目参考自教程<Ray Tracing in One Weekend>,在跑通了所有例子之后,加上了自己的理解写成笔记,项目使用CPU多线程提速,并增加了GUI进度显示. 项目链接:ht ...
- 在线作业帮智能计算机,作业帮喵喵机智能错题学习机 5秒解决错题学习的黑科技...
随着智能时代的到来, 科技育儿作为带娃新方式也逐渐成为主流,孩子的教育标准越来越高,其中科技帮忙解决了不少问题. 前几天,孟妈去学校围观了孟子的同学作业互帮小组,那场面真的太壮观了!孩子们围着一张圆桌 ...
- 《中国人工智能学会通讯》——4.41 两种学习之间有什么区别?
4.41 两种学习之间有什么区别? 来 看 一 下 剑 桥 大 学 信 息 工 程 教 授 ZoubinGhahramani 对贝叶斯规划学习(BPL)的评价,他认为 BPL 对人工智能.认知科学和机 ...
- 华为OD机试2022.11.04 只记得两题
OD机试两题简单,一题中等:时间来不及只能做简单的两个. 第一题探索地块建立给一块n*m的地块,相当于n*m的二维数组,每个元素的值表示这个小地块的发电量:求在这块地上建立正方形的边长为c的发电站,发 ...
- 13. 利用 条件运算符 的嵌套来完成此题: 学习成绩>=90分的同学A表示, 60-89分之间的用B表示, 60分以下的用C表示
程序书算法精题–JS版 利用 条件运算符 的嵌套来完成此题: 学习成绩>=90分的同学A表示, 60-89分之间的用B表示, 60分以下的用C表示. 源码 function PrintSocre ...
- 每天两小时学习编译原理——一个学期的第三天,希望能坚持长久✨
上一篇:每天两小时学习编译原理--一个学期的第二天,希望能坚持长久✨ 下一篇:每天两小时学习编译原理--一个学期的第四天,希望能坚持长久✨ 继续学习 编译程序过程 词法分析 语法分析 语义分析与中间代 ...
最新文章
- HashMap集合和TreeMap集合
- 用grub4dos修复grub
- python快速排序算法_Python实现快速排序算法及去重的快速排序的简单示例
- Stack/Queue与Vector/List的联系
- 【转】什么是CORS
- ajax走到error_jQuery中ajax 跳入error的原因总结
- 用python玩转数据测试与作业_大学mooc用Python玩转数据章节测试答案
- 计算机 仿真 流体力学剪切应力,基于人体血管B型主动脉夹层三维建模及血流动力学仿真研究...
- AB压力测试(简易版操作)
- 团队任务3:第一次冲刺(Alpha)
- [038]量化交易]显示所有股票名称及股票代码
- 医院管理系统(Java+SSM+MySQL开发的医院科室管理系统)
- EUI分页显示的设置
- 当你的才华撑不起你的野心的时候,你就应该努力
- 建立“知识共享”生态圈,培养塔尔斯基数学小后代,不是说假话、放空炮
- Abaqus用python读取.odb文件
- mysql 关联更新_MySQL UPDATE多表关联更新
- FastDFS文件系统单机环境搭建
- 凡科虚拟服务器怎样做301,虚拟主机如何做301重定向
- 冲击python二级——布尔操作符,比较操作符,控制流的基础
热门文章
- Cuyahoga的安装及结构
- 繁琐又危险的任务(varchar--nvarchar)
- oddo docker 安装
- 如何在ubuntu14.04(64位)编译运行32位程序
- Microsoft和AWS推出免费的云优化服务
- 实现一个包含Microsoft.Advertising和SmartMad广告控件的UserControl
- ASP.NET温故而知新学习系列之ASP.NET多线程编程—异步编程(九)
- Korn Shell: typeset
- AsyncTask 实现异步处理任务
- XenApp 6 license导入报错的终极解决方案