题面 CF755G PolandBall and Many Other Balls 给定 \(n\) 和 \(m\).有一排 \(n\) 个球,求对于每个 \(1\le k\le m\),选出 \(k\) 个球或相邻的球不能重复的方案数. 数据范围:\(1\le n\le 10^9\),\(1\le m<2^{15}\). 路标 这题是老经典题了,前人的描述也足够充分了. 但是蒟蒻尝试了这题的 \(3\) 种做法并记在笔记中后还是忍不住去挣咕值分享给大家. 这是的三种做法对比图(从下到上依次是倍…
从神 Karry 的题单过来的,然后自己瞎 yy 了一个方法,看题解区里没有,便来写一个题解 一个常数和复杂度都很大的题解 令 \(dp_{i,j}\) 为 在 \(i\) 个球中选 \(j\) 组的方案数,则显然有转移 \(dp_{i,j}=dp_{i-1,j}+dp_{i-1,j-1}+dp_{i-2,j-1}\) 然后考虑对其优化: 令 \(f_i\) 为 \(dp_i\) 的生成函数,则 \(f_i\) 只与 \(f_{i-1}\) 和 \(f_{i-2}\) 有关,且关系为 \(f_i…
题意:长度为n的序列,相邻两个或单独一个可以划分到一个组,每个元素最多处于一个组. 问恰好分割成k(1<=k<=m)段有多少种方案? 标程: #include<bits/stdc++.h> using namespace std; typedef long long ll; ; ; ; int l,_n,pos[N],n,k,a[N],b[N],c[N],x1[N],x2[N],x3[N],x4[N],w[N],wn,inv_n; int ksm(int x,int y) { ;…
因为垃圾电脑太卡了就重开了一个... 前传:多项式Ⅰ u1s1 我预感还会有Ⅲ 多项式基础操作: 例题: 26. CF438E The Child and Binary Tree 感觉这题作为第一题还蛮合适的( 首先我们设 \(f_i\) 为权值之和为 \(i\) 的符合要求的二叉树的个数. 显然可以枚举根节点的权值.左子树的权值之和进行转移. 也就是 \(f_i=\sum\limits_{x\in S}\sum\limits_{y=0}^{i-S}f_yf_{i-x-y}\) 如果我们记 \(…
Description Windy has N balls of distinct weights from 1 unit to N units. Now he tries to label them with 1 to N in such a way that: No two balls share the same label. The labeling satisfies several constrains like "The ball labeled with a is lighter…
蒟蒻__stdcall终于更新博客辣~ 一下午+一晚上=一道计数题QAQ 为什么计数题都这么玄学啊QAQ Prelude 题目链接:这里是传送门= ̄ω ̄= 下面我将分几个步骤讲一下这个题的做法,大家不必一次看完,可以一点一点地推进思路,希望对锻炼大家的思维能力有帮助o( ̄▽ ̄)ブ. Step 1 首先要看出来这是一个计数题对吧... 计数题有很多做法,对于这个题,我们考虑合理枚举,即不重复不遗漏地枚举所有情况,然后乘上一个组合数,并通过前缀和优化来降低复杂度. Step 2 枚举什么东西呢? 我…
n年没有更博客:我总结出了规律,当学的东西很难得时候都去学习,没有时间写博客,只有 内容对于我这种蒟蒻友好,又让我非常闲的慌时才写博客,这种博客以后也没有价值(也有些是做完一道题有成就感写的) 最近内容就不友好,离着一篇最近的博客还有10几天,那个也是因为有成就感.... 这个是之前写好的,搬到这里来只是不会觉得太长时间没有更博客 这个题一开始我把左右搞反了 结果考试0分 反过来就对了.... 分割线 如果一个栈中最低端已经是红球就相当于不用处理栈底 假设一个栈中只有蓝球,会是多少步呢? 由打表…
Problem ARC083F 题意概要:给定 \(2n\) 个二维平面上的球,坐标分别为 \((x_i,y_i)\),并给出 \(n\) 个 \(A\)类 机器人 和 \(n\) 个 \(B\)类 机器人,其中: \(A\)类 加5分 机器人分布在横坐标上,坐标依次为 \((1,0),(2,0),\cdots ,(n,0)\),触发第 \(i\) 个机器人,它会将位处第 \(i\) 列的最下头的球拿走(即横坐标为 \(i\) 且纵坐标最小的球) \(B\)类 不加分 机器人分布在横坐标上,坐标…
直接从1开始枚举不就行了... 思路如下: 1.先定义一个判断是不是质数的函数 int pd(int n) { if(n==1)return true; if(n==2)return false; for(int i=2;i*i<=n;i++) if(n%i==0)return true; return false; } 2.从1开始枚举,可以直接使用 for(int i=1;;i++) 进行枚举 3.判断i是否满足要求,调用函数,如果满足,就直接输出i并且break或return 0 for(…
我们可以发现,当n>2时,n·(n-2)+1=(n-1)·(n-1),因此,输出n-2即可. 如果n<=2,我们可以发现: 当n=2时,2·4+1=9不是质数,输出4即可: 当n=1时,1·3+1=4不是质数,输出3即可. 至此,此题就被我们解决了! AC代码: #include <bits/stdc++.h>//万能头文件 using namespace std;//使用标准名字空间 inline int read() { //快速读入 ,x=; char c=getchar()…