啦啦啦,今天的考试题

不过原来考试题的n<=10w

由于我有更好的做法,所以我就改成20亿辣

本来先说一说考试题的正解做法的

但是复杂度是O(nlogm),实在是太渣了

所以还是说一说我的做法吧

首先假定都会写裸的DP

我们考虑A,B,如果B不能转移到A,当且仅当A不等于B且A%B=0

很容易发现当A是素数时,A只不能从1那里转移过来,也就是说素数的转移都是一样的

换句话说,在状态里当长度一定时以每个素数结尾的方案一定是一样的

这就给了我们一些启发,很容易得到结论若两个数的唯一分解式的指数排序后指数序列完全一样

则这两个数的转移一定相同,具体证明可以使用数学归纳法

(我离考试结束快15分钟的时候才证明了这个结论,结果没时间写了,真是悲桑)

我们定义转移相同的数为一个等价类,可以知道m=100000时有160个等价类

这样我们就可以构造一个160*160的矩阵,把转移暴力搞出来之后矩阵乘法加速DP

时间复杂度O(160^3logn),这样写的话在cojs上交会小小的T几个点

虽然时间复杂度分析下来是可以跑的过的

但是我们要进行跟时间复杂度同阶的模操作,这样会大大减慢程序运算速度

之后我们进行一些分析,998244353这个模数<=2^30,相乘<=2^60

如果我们开unsigned long long,那么我们理论上可以进行16次加法之后再做模运算

实际程序实现我采用了每加10次取一次模的方法,这样取模的次数大大缩小了

就可以在cojs上通过了

(虽然卡常数很不厚道,但是鉴于这道题的思路是我从头到尾YY出来的,包括对于常数的优化

所以就这样出在cojs上吧)

cojs 香蕉 解题报告的更多相关文章

  1. cojs 西瓜 解题报告

    首先我们要知道pick公式 设二维平面内任意多边形面积为S 设多边形内部整点数为a 设多边形边界的整点数为b 则满足S=a+b/2-1 变形得a=S-b/2+1 由期望的线性性质我们把问题转化为 1. ...

  2. cojs 火龙果 解题报告

    昨天晚上做了一发HNOI,感觉有很多新的idea 于是就选了一个出成题目辣 我们考虑暴力 暴力很明显是把这个图A<=D,B<=E的形态搞出来 之后处理相关的询问 这样我们会很容易得到正解: ...

  3. ZOJ 1093 Monkey and Banana (LIS)解题报告

    ZOJ  1093   Monkey and Banana  (LIS)解题报告 题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid= ...

  4. CH Round #56 - 国庆节欢乐赛解题报告

    最近CH上的比赛很多,在此会全部写出解题报告,与大家交流一下解题方法与技巧. T1 魔幻森林 描述 Cortana来到了一片魔幻森林,这片森林可以被视作一个N*M的矩阵,矩阵中的每个位置上都长着一棵树 ...

  5. 二模13day1解题报告

    二模13day1解题报告 T1.发射站(station) N个发射站,每个发射站有高度hi,发射信号强度vi,每个发射站的信号只会被左和右第一个比他高的收到.现在求收到信号最强的发射站. 我用了时间复 ...

  6. BZOJ 1051 最受欢迎的牛 解题报告

    题目直接摆在这里! 1051: [HAOI2006]受欢迎的牛 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 4438  Solved: 2353[S ...

  7. 习题:codevs 2822 爱在心中 解题报告

    这次的解题报告是有关tarjan算法的一道思维量比较大的题目(真的是原创文章,希望管理员不要再把文章移出首页). 这道题蒟蒻以前做过,但是今天由于要复习tarjan算法,于是就看到codevs分类强联 ...

  8. 习题:codevs 1035 火车停留解题报告

    本蒟蒻又来写解题报告了.这次的题目是codevs 1035 火车停留. 题目大意就是给m个火车的到达时间.停留时间和车载货物的价值,车站有n个车道,而火车停留一次车站就会从车载货物价值中获得1%的利润 ...

  9. 习题: codevs 2492 上帝造题的七分钟2 解题报告

    这道题是受到大犇MagHSK的启发我才得以想出来的,蒟蒻觉得自己的代码跟MagHSK大犇的代码完全比不上,所以这里蒟蒻就套用了MagHSK大犇的代码(大家可以关注下我的博客,友情链接就是大犇MagHS ...

随机推荐

  1. 支持IE6的树形节结构TreeTable实际应用案例

    <script src="jquery.js" type="text/javascript"></script> <script ...

  2. js关闭页面(兼容浏览器)

    function closewindow() { window.opener = null; window.open("", "_self"); window. ...

  3. Oracle内存组件理论篇一

    目标 1.SGA结构 2.PGA结构 1.SGA Shared pool 1).共享池是对SQL.PL/SQL程序进行语法分析.编译.执行的内存区域. 在执行SELECT * FROM emp语句时, ...

  4. WPF的Application类

    本节主要介绍一下Application类的部分功能,我们首先来看一下如何使用Application类来加载一个窗口: 我们首先创建一个控制台程序,并引入相关的dll,然后修改Main()方法. [ST ...

  5. 使用Powershell在Microsoft Azure中创建Virtual Machine

    获取虚拟机镜像 PS C:\WINDOWS\system32> Get-AzureVMImage 仅获得虚拟机名 PS C:\WINDOWS\system32> (Get-AzureVMI ...

  6. keyboard

    一 按键驱动程序的简单实现 下面是基于中断和消息的按键驱动程序,其工作原理是:当应用程序读取键值时,会调用按键驱动程序的read函数,而我们实现的read函数检测完读取长度后没有直接读取键值而是等待按 ...

  7. docker 感性介绍

    Docker 允许开发者们将他们的应用打包放在云端的“容器”中,无需再修改就可以发布到任何流行的 Linux 机器上.由于采用沙盒机制,各应用之间没有任何接口,所以不用担心它们会相互干扰.也同样因为这 ...

  8. centos Supervisor

    Supervisor是一个进程监控程序. 满足的需求是:我现在有一个进程需要每时每刻不断的跑,但是这个进程又有可能由于各种原因有可能中断.当进程中断的时候我希望能自动重新启动它,此时,我就需要使用到了 ...

  9. MVC的小知识点

    1.MVC的前台页面编译完之后,也会生成一个前台页面类.在前天页面中加入这段代码this.GetType().Assembly.GetLocation()得到当前类所在的程序集,可以查看其所在的程序, ...

  10. 三大主流开源硬件对比:Arduino vs BeagleBone vs Raspberry Pi

    个人总结: Arduino就是个AVR单片机,个人觉得更适合玩电子的,社区也很活跃. BeagleBone是ARM Cortex-A8,属于嵌入式,价格高于Pi,但是许多方面拥有超越 Pi 的优 势, ...