[SDOI2016]部分题选做

听说SDOI蛮简单的,但是SD蛮强的..

之所以是选做,是因为自己某些知识水平还不到位,而且目前联赛在即,不好花时间去学sa啊之类的..

bzoj4517

数论题,我这种不会错排的数论白痴都能手推出来,这题应该谁都能写吧。

#include<cstdio>
#include<cstring>
#include<algorithm>
#define mo 1000000007
#define ll long long
#define N 1000100
using namespace std;
ll jie[N],g[N],f[N],ni[N];
ll quickmi(ll x)
{
    ll tmp=1,k=mo-2,a=x;
    while(k>0)
    {
        if(k%2==1)
        {
            tmp=tmp*a%mo;
        }
        a=a*a%mo;
        k/=2;
    }
    return tmp;
}
ll cc(int n,int m)
{
    return jie[n]*ni[m]%mo*ni[n-m]%mo;
}
int main()
{
    jie[0]=1;
    for(int i=1;i<=1000000;i++)jie[i]=(jie[i-1]*i)%mo;
    ni[0]=1;ni[1]=1;
    for(int i=1;i<=1000000;i++)
      {
          ni[i]=quickmi(jie[i]);
      }
    f[0]=1;f[1]=0;f[2]=1;f[3]=2;
    g[0]=0;g[1]=1;g[2]=2;g[3]=9;
    for(int i=4;i<=1000000;i++)
    {
            f[i]=g[i-1]%mo;
            g[i]=(f[i-1]+g[i-1])%mo*i%mo;
    }
    int cas,n,m;
    scanf("%d",&cas);
    while(cas--)
    {
        scanf("%d%d",&n,&m);
        ll ans=cc(n,m)*f[n-m]%mo;
        printf("%lld\n",ans);
    }
 } 

bzoj4517

时间: 2024-10-26 19:21:02

[SDOI2016]部分题选做的相关文章

CF简单题选做

And Reachability 给定一个长度为 \(n\) 的序列 \(a\) ,定义 \((x,y)\) "可到达" 为:可以选出若干个位置 \(p_1...p_k\) ,使得 \(\forall x\le p_i \le y\) \(\forall a_{p_i}\&a_{p_{i+1}}\not=0\) , \(q\) 次询问 \((x,y)\) 是不是 "可到达" 的 \(n,q,a_i\le 3\times 10^5\) tags : dp ,

课后选做题-MyOD

课后选做题-MyOD od命令的了解 功能 od命令用于将指定文件内容以八进制.十进制.十六进制.浮点格式或ASCII编码字符方式显示,通常用于显示或查看文件中不能直接显示在终端的字符.od命令系统默认的显示方式是八进制,名称源于Octal Dump. 常见的文件为文本文件和二进制文件.od命令主要用来查看保存在二进制文件中的值,按照指定格式解释文件中的数据并输出,不管是IEEE754格式的浮点数还是ASCII码,od命令都能按照需求输出它们的值. 语法 od 参数 -a 此参数的效果和同时指定

(各个公司面试原题)在线做了一套CC++综合测试题,也来测一下你的水平吧(二)

刚才把最后的10道题又看了下,也发上来吧. 下面给出试题,和我对题目的一些理解 前10道题地址 (各个公司面试原题)在线做了一套CC++综合测试题,也来测一下你的水平吧(一) 11.设已经有A,B,C,D4个类的定义,程序中A,B,C,D析构函数调用顺序为? C c; void main() { A*pa=new A(); B b; static D d; delete pa; } A.    A B C D B.    A B D C C.   A C D B D.   A C B D 答案:

# 清北冬令营真题泛做

清北冬令营真题泛做 前言 这段时间为了准备冬令营把清北冬令营真题都做了一下.更个博回顾一下(免得你们老说我咕咕咕). 先写良心PKU的题再写THU的题, 主要是THU的题和PKU比起来真的毒瘤好多...... PKUWC2018 [PKUWC2018]Minimax 一个比较显然的暴力是归并排序,每次直接前后缀计算答案即可. 为啥不用线段树合并代替归并排序呢? 暴力线段树合并,合并的过程中顺便算一下即可,由于权值区间不交所以复杂度一个\(log\). [PKUWC2018]Slay the Sp

MySort(选做)的实现

MySort(选做)的实现 题目内容 注意:研究sort的其他功能,要能改的动代码,需要答辩 模拟实现Linux下Sort -t : -k 2的功能. 要有伪代码,产品代码,测试代码(注意测试用例的设计) 参考 Sort的实现.提交博客链接. 代码框架(题目给出) import java.util.*; public class MySort { public static void main(String[] args) { String[] toSort = {"aaa:10:1:1&quo

历年NOIP水题泛做

快noip了就乱做一下历年的noip题目咯.. noip2014 飞扬的小鸟 其实这道题并不是很难,但是就有点难搞 听说男神错了一个小时.. 就是$f_{i,j}$表示在第$i$个位置高度为$j$的时候最小点击次数 递推的话对于上升的情况只做一次,后面几次在后面再做.. #include <cstdio> #include <cstring> #include <cstdlib> #include <algorithm> using namespace st

第五届蓝桥杯C/C++本科B组(真题试做)(1~5)

菜鸡只能报个B组.于是报了第六届的本科B.就找了上届的本科B的题来做做. A: 标题:啤酒和饮料 啤酒每罐2.3元,饮料每罐1.9元.小明买了若干啤酒和饮料,一共花了82.3元. 我们还知道他买的啤酒比饮料的数量少,请你计算他买了几罐啤酒. 注意:答案是一个整数.请通过浏览器提交答案. 不要书写任何多余的内容(例如:写了饮料的数量,添加说明文字等). 对于这种,我直接暴力了. double a=2.3,b=1.9; FOR(j,0,SIZE) FOR(i,0,j) { if(abs(a*i+b*

算法导论第1章参考答案与编程题选

系列地址:算法导论(CLRS)参考答案与配套编程题选 1.1 算法 1.1-1 例如大学生学期统计排序以分配奖学金等等. 1.1-2 例如解决问题需要使用的内存等等. 1.1-3 顺序表,优点有支持随机查找,可以在\(O(1)\)内查找元素,缺点是增添/删除元素不方便. 1.1-4 相似:都可以通过带有加权边的图来模拟解决总距离最小化问题. 不同:最短路径和旅行商问题考虑的顶点情况不同,导致复杂度不同. 1.1-5 只有最佳解才行:使用相同外观的钥匙开锁,只有正确的钥匙能打开. 获得近似解也行:

算法导论第2章参考答案与编程题选

系列地址:算法导论(CLRS)参考答案与配套编程题选 2.1 插入排序 练习2.1-1 原题为 \(A=<31,41,59,26,41,58>\) , 每一次排序后变化如下: 为了演示效果,所有值统一减 \(10\). 下面演示对 \(A=<21,31,49,16,31,48>\) 的排序过程: 练习2.1-2 重写为非升序排序结果如下: 点击查看大图 原文地址:https://www.cnblogs.com/accepteddoge/p/8710241.html