CodeChef题目选讲
https://wenku.baidu.com/view/2445a0322f60ddccda38a023.html

关键点:不超过7条
根据咕咕原理,所以答案最少是N/7;(N小于49就暴力)
随机化找两个点判断直线上的点个数,随机500次,概率就很高了
法二:
点数大于50,答案至少是8
答案一定是7条路之一
随机找7个点,按照级角序排序,点数大于7的直线就删去上面的点(之后random不考虑,但是实际上不能真删除,因为可能两条路有交点),每次一定可以找到至少一条路
复杂度就很稳了
思想:有些很麻烦处理的事情,范围又不太大,都可以随机化搞搞,能分析出概率就很好了


可能无穷组解,
无穷组解一定可以跳过去再跳回来,A,B向量必须共线
A,B不共线:
方案数有限。
坐标范围大而且正负很麻烦
解方程求出到(x,y)以及每个障碍点的用A的次数,用B的次数
转化成格点往上往右走的方案数
障碍?
套路地,f[i]表示到第一次到第i个障碍点的方案数,容斥即可
A,B共线:
把这条直线上的障碍点和(x,y)都投影到y或者x轴上
没有明显的阶段,但是可以拓扑排序计数+判环
0的特殊讨论很恶心
思路:
基于inf、共线 讨论,转化为不同的模型
路径统计模型要熟悉:
1.网格图,往上往右走
有障碍点的——》容斥,第一个碰到障碍点编号
格点不是很多的多源多汇——》DP,每次新加入一个点,方案数+1,到了一个汇点更新ansfzyzojP3979 -- [校内训练20180914]魔法方阵
矩形到矩形的路径AGC 018E.Sightseeing Plan——网格路径问题观止
2.DAGtopo计数
DAG图上的DP

肯定考虑质因数分解了
A=2^a*3^b*5^d*7^e
a/3+b/2+d+e<=700
枚举b,a,把2^a*3^b的值、每个数字个数(最小情况下)放进hash表里,相同的mod值,位数小的优,位数相同,小的数多的优(字典序)
枚举d,e,去hash表里查询,更新答案比较方式同理
思路:
BSGS或者折半,一半的位数比较小的时候,就可以用hash表存一部分再枚举另一部分了
复杂度指数级下降。

m很小,n很大,仿佛有矩乘的影子
所以,f[n][m],和为n放了m个k的所有情况的sin乘积和,
最后一个k+1时候,
发现,和最后一个数是cos也有关系,所以变成f[n][m][0/1]然后矩乘即可
思路:
一种分段的序列DP,考虑重新开一段或者最后一段延长1
各种斯特林数的递推都有类似思路

经典挖串DP
推完式子状态过多,bool的DP的优化:
1.压位,把某一维的状态变成,维度/64(类似分块),然后bool变成unsigned long long,每一位0/1表示这个块的第i位是不是0/1
应用范围广,只是除以64,不彻底
2.把某一维删掉,变成,某状态下某个值的最值,
有的时候不行,看题目了,但是完全去除一维,复杂度降低一个量级
CodeChef题目选讲的更多相关文章
- ICPC题目选讲
Traveling in the grid world 题目描述 有一个 \(n\times m\) 的格点图,两点之间走他们的连线,但是这条连线不能恰好覆盖其他整点.还要求相邻两步之间的连线不能斜率 ...
- hwy题目选讲
\[ f(n) = n/5 + f(n/5)\\ g(n) = (n\mod10)! * g(n/5)\mod 5\\ ans = f(n)*inv(2^g(n))\\ \]
- 【WC2019笔记】IOI2018 / ACM题目选讲
哇!济南的 rqy 大佬讲课!就是 $luogu$ 上有名的那位! 上面这句话写错了,请大家无视 XylophoneIOI2018 练习赛 T2题意:交互提有一个 $0\sim n-1$ 的排列,保证 ...
- 2019暑期金华集训 Day6 杂题选讲
自闭集训 Day6 杂题选讲 CF round 469 E 发现一个数不可能取两次,因为1,1不如1,2. 发现不可能选一个数的正负,因为1,-1不如1,-2. hihoCoder挑战赛29 D 设\ ...
- PJ可能会用到的动态规划选讲-学习笔记
PJ可能会用到的动态规划选讲-学习笔记 by Pleiades_Antares 难度和速度全部都是按照普及组来定的咯 数位状压啥就先不讲了 这里主要提到的都是比较简单的DP 一道思维数学巧题(补昨天) ...
- PJ考试可能会用到的数学思维题选讲-自学教程-自学笔记
PJ考试可能会用到的数学思维题选讲 by Pleiades_Antares 是学弟学妹的讲义--然后一部分题目是我弄的一部分来源于洛谷用户@ 普及组的一些数学思维题,所以可能有点菜咯别怪我 OI中的数 ...
- 正睿OI DAY3 杂题选讲
正睿OI DAY3 杂题选讲 CodeChef MSTONES n个点,可以构造7条直线使得每个点都在直线上,找到一条直线使得上面的点最多 随机化算法,check到答案的概率为\(1/49\) \(n ...
- [转载]CSP-J/S 第一轮知识点选讲
CSP-J/S 第一轮知识点选讲 转载自这里 感谢原博主的大力整理! 信息学史及基本知识 一.信息学及计算机史 计算机的顶级奖项:图灵奖.冯·诺依曼奖 图灵奖:由ACM(美国计算机协会)设立于1966 ...
- DP选讲
$DP$选讲直接上题吧放个题单[各省省选DP](https://www.luogu.com.cn/training/151079)$P5322[BJOI2019]$排兵布阵一眼题,考虑$dp[i][j ...
随机推荐
- Vue 实际项目中你可能会遇见问题
纸上得来终觉浅,绝知此事要躬行! Vue的文档和教程看的太多,小的demo做的多,也不如自己实际的进行一个完整项目的开发.只有做了才知道原来问题这么多,这里列举了一些你做demo教程可能不会遇见的坑. ...
- Git push 时如何避免出现 "Merge branch 'master' of ..."
在使用 Git 的进行代码版本控制的时候,往往会发现在 log 中出现 "Merge branch 'master' of ..." 这句话,如下图所示.日志中记录的一般为开发过程 ...
- Mysql双主热备+LVS+Keepalived高可用操作记录
MySQL复制能够保证数据的冗余的同时可以做读写分离来分担系统压力,如果是主主复制还可以很好的避免主节点的单点故障.然而MySQL主主复制存在一些问题无法满足我们的实际需要:未提供统一访问入口来实现负 ...
- C++STL——优先队列
一.相关定义 优先队列容器与队列一样,只能从队尾插入元素,从队首删除元素.但是它有一个特性,就是队列中最大的元素总是位于队首,所以出队时,并非按照先进先出的原则进行,而是将当前队列中最大的元素出队.这 ...
- 5 questions
1.软件开发中有哪几种过程模型? 2.详细设计有哪几种描述方法? 3.什么是需求分析? 4.软件设计的基本原理包括哪些内容? 5.简述文档在软件工程中的作用? 逸翔.
- 第六周分析Linux内核创建一个新进程的过程
潘恒 原创作品转载请注明出处<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 task_struct结构: ...
- springboot整合druid连接池、mybatis实现多数据源动态切换
demo环境: JDK 1.8 ,Spring boot 1.5.14 一 整合durid 1.添加druid连接池maven依赖 <dependency> <groupId> ...
- github心得体会 王倩倩 201303014004 计科高职13-1
刚开始接触一门语言软件特别无从下手,尤其还是全英文的,真的是很头疼,注册的时候这个就弄了半天,在网上搜了一下教程然后又结合着老师上课讲的内容自己多做了几遍,也算是对github熟悉了,然后学会操作代码 ...
- B01-java学习-阶段2-面向对象
对象内存分析 构造方法 类的深入解释 预定义类型和自定义类型深入分析和解释 预定义类源码的查看 预定义类和自定义类的对比 跨过类中使用自定义类型作为属性类型的门槛 构造方法的定义和执行过程 编译器提供 ...
- the confilict between validation and readonly in jquery
How can I disable jquery validation on readonly fields? http://stackoverflow.com/questions/10803294/ ...