NOI2011 Day1
NOI2011 Day1
兔农
题目描述:\(fib[1]=fib[2]=1, fib[i]=fib[i-2]+fib[i-1] (i\geq 3)\),若\(fib[i] \equiv 1(mod k)(i \geq 3)\),则\(fib[i]=fib[i]-1\),已知\(k, P\),求\(fib[n] mod P\)
solution:
先看一下当\(k=7\)时,\(fib[i] mod k\):(每行的最后一个数变为0)
1, 1, 2, 3, 5, 1
5, 5, 3, 1
3, 3, 6, 2, 1
2, 2, 4, 6, 3, 2, 5, 0, 5, 5, 3, 1
3, 3, 6, 2, 1
……
出现循环了,也就是说这是有循环节的,而且每一行都是一个斐波那契数列,由于每行的最后一个数为\(0\),下一行的第一个数变成了该行的倒数第二个数,下一行的第二个数与第一个数相同,构成新的斐波那契数列的首两项。
设每行首项为\(X\),每一项除以\(X\),就是原来的斐波那契数列。
令\(X*fib[i] \equiv 1 (mod k)\)成立的最小的\(i\)记为\(Len[X]\),这就是以\(X\)为首项的长度,如果\(Len[x]\)不存在,则说明以后都不会再减一,之后就按照斐波那契数列去做就好了。
求\(Len[X]\),就要求\(X\)的逆元,因为\(k\)不一定是质数,只好用扩展欧几里得求出\(fib[Len[X]]\),从而求出\(Len[x]\)。
计算斐波那契数列时用到矩阵乘法,自己构造一下就好了。
这题的可行性在于一个结论:模\(k\)意义下的斐波那契数列的循环节\(\leq 6k\)
时间复杂度:\(O(6k)\)
智能车比赛
题目描述:给出\(n\)个矩形,第\(i\)个矩形区域的左下角和右上角坐标分别为\((x_{i,1},y_{i,1})\)和\((x_{i,2},y_{i,2})\), 保证\(x_{i,1}<x_{i,2}=x_{i+1,1},y_{i,1}<y_{i,2}\),给出起点坐标与终点坐标,只能在矩形内行走,问起点到终点的最短路径。
solution:
只有相邻两个矩形的重边的端点是有用的,然后\(n^2\)连边,最短路。
时间复杂度:因算法而异
阿狸的打字机
题目描述:给出一串操作,包含小写字母或\('B','P'\),小写字母表示在字符串末尾添加该字母(字符串一开始为空),\('B'\)为删去最后一个字母,\('P'\)为输出当前字符串。有若干个询问\((x, y)\),问第\(y\)个输出的字符串包含多少个第\(x\)个输出的字符串。
solution:
容易想到AC自动机+fail-tree,然后把询问离线读入,按\(y\)从小到大排序。在fail-tree中,任意一个点的子树的字符串都包含该点所对应的字符串。
按照操作顺序模拟,将\(y\)到根的点\(+1\)(AC自动机),查找\(x\)的子树的和(fail-tree)即为答案。
时间复杂度:\(O(nlogn)\)
NOI2011 Day1的更多相关文章
- 是时候开刷NOI了
整天挨着毛爷爷,压力好大.. 看毛爷爷即将炖完NOI,我的确也该刷了 原则是从头到尾自己想(虽然看了一次题解),可以不A掉. NOI2009 day1: T1 题目略神,我还是不讲了...(就这题我W ...
- CH Round #54 - Streaming #5 (NOIP模拟赛Day1)
A.珠 题目:http://ch.ezoj.tk/contest/CH%20Round%20%2354%20-%20Streaming%20%235%20(NOIP模拟赛Day1)/珠 题解:sb题, ...
- BZOJ 2434: [Noi2011]阿狸的打字机 [AC自动机 Fail树 树状数组 DFS序]
2434: [Noi2011]阿狸的打字机 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 2545 Solved: 1419[Submit][Sta ...
- NOIp2016 Day1&Day2 解题报告
Day1 T1 toy 本题考查你会不会编程. //toy //by Cydiater //2016.11.19 #include <iostream> #include <cstd ...
- day1
day1.py ][][: ][: ): : ]['lock'] = 0 json.dump(userlist_message, open(userlist, 'w')) break #输错次数到3次 ...
- day1作业--登录入口
作业概述: 编写一个登录入口,实现如下功能: (1)输入用户名和密码 (2)认证成功后显示欢迎信息 (3)输错三次后锁定 流程图: readme: 1.程序配置文件: 黑名单文件blacklist.t ...
- luogu1003铺地毯[noip2011 提高组 Day1 T1]
题目描述 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯.一共有 n 张地毯,编号从 1 到n .现在将这些地毯按照编号从小到大的顺序平行于 ...
- BZOJ2432 [Noi2011]兔农
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000作者博客:http://www.cnblogs.com/ljh2000-jump/转 ...
- 【NOI2011】道路修建 BFS
[NOI2011]道路修建 Description 在 W 星球上有 n 个国家.为了各自国家的经济发展,他们决定在各个国家之间建设双向道路使得国家之间连通.但是每个国家的国王都很吝啬,他们只愿意修建 ...
随机推荐
- 【JQ成长笔记】关于$(this).index与$.each的使用
本人菜鸟入门,小庙容不下大神的 O(∩_∩)O~~轻喷~ 工作当中响应某个需求,切换选项卡的一个效果,根据每个选项下的内容元素的总数不同而进行不同的html变化(如果选项卡下的内容为空就等于XXX,否 ...
- Centos查看端口占用情况和开启端口命令
Centos查看端口占用情况命令,比如查看80端口占用情况使用如下命令: lsof -i tcp:80 列出所有端口 netstat -ntlp 1.开启端口(以80端口为例)方法一: /sbin/i ...
- AJAX远程跨域获取数据
//本地获取json文件 $.ajax({ url : 'json.php', type : 'post', dataType : 'json',//返回json数据格式 success : func ...
- ab压力测试报错: apr_socket_recv: Connection reset by peer (104)
使用ab对网站进行压力测试,开始设置并发500,可以正常使用,当设置并发为1000,则报错: apr_socket_recv: Connection reset by peer (104) 改服务端a ...
- DIV+CSS规范命名
一.命名规则说明: 1).所有的命名最好都小写2).属性的值一定要用双引号("")括起来,且一定要有值如class="divcss5",id="div ...
- C语言的本质(11)——指针与数组
1.指针数组和数组指针的内存布局 初学者总是分不出指针数组与数组指针的区别.其实很好理解:指针数组:首先它是一个数组,数组的元素都是指针,数组占多少个字节由数组本身决定.它是"储存指针的数组 ...
- UICollectionView基础学习
相信了解UICollectionView的也一定听过瀑布流吧,开始之前先提供两个瀑布流,有时间的可以深入研究研究 https://github.com/dingpuyu/WaterFall https ...
- POJ 1753 Flip Game (DFS + 枚举)
题目:http://poj.org/problem?id=1753 这个题在開始接触的训练计划的时候做过,当时用的是DFS遍历,其机制就是把每一个棋子翻一遍.然后顺利的过了.所以也就没有深究. 省赛前 ...
- 10个Laravel4开发者必用扩展包
Laravel是一个新的基于最新PHP版本号语法,支持IoC等设计模式的高速开发框架.眼下最新版本号为4.2,推荐安装PHP版本号5.5+. 本文列举10个基本软件包,都是开发人员使用Laravel框 ...
- 【线段树成段更新成段查询模板】【POJ3468】A Simple Problem with Integerst
题目大意: 2个操作 A.区间a b 增加 c B 查询a b; 注意事项:1.记住要清除标记 2.查询时要下放标记,但没必要向上更新 线段:自带的,不用建模 区间和性质:sum: /* WA 1次 ...