T1 X国的军队

贪心,按$b-a$的大小降序排序,然后就贪心吧

#include<iostream>
#include<cstdio>
#include<algorithm>
#define ll long long
using namespace std;
struct node
{
ll a,b,las;
}h[];
ll T,n,ans;
ll read()
{
ll aa=,bb=;char cc=getchar();
while(cc>''||cc<''){if(cc=='-') bb=-;cc=getchar();}
while(cc<=''&&cc>=''){aa=aa*+cc-'';cc=getchar();}
return aa*bb;
}
bool cmp(node x,node y)
{
return x.b-x.a>y.b-y.a;
}
int main()
{
T=read();
while(T--){
n=read();ans=;
for(int i=;i<=n;i++) h[i].a=read(),h[i].b=read();
sort(h+,h+n+,cmp);
for(int i=;i<=n;i++){
if(h[i-].las<=h[i].b) ans+=h[i].b-h[i-].las,h[i].las=h[i].b-h[i].a;
else h[i].las=h[i-].las-h[i].b+h[i].b-h[i].a;
}
printf("%lld\n",ans);
}
return ;
}

X国的军队

T2 排列组合

结论:$\sum{C_n^i*C_n^i}=C_{2*n}^n$

$\sum{C_n^i*C_n^i}=\sum{C_n^i*C_n^{n-i}}$

考虑他的意义,在n个物品中选$i$个,再从$n$个物品中选$n-i$个

也就是$2*n$个物品,从前$n$个中选$i$个,从后$n$个中选$n-i$个

因为$i\in(0,n)$,取遍了所有的数,所以就是$C_{2*n}^n$

就是在$2*n$的序列中,任选$n$个,有i个在左半边,那么就一定有$n-i$个在右半边,两者是一一对应的

#include<iostream>
#include<cstdio>
#define ll long long
#define mod 1000000007
using namespace std;
ll T,n,ans,fac[],facinv[],inv[];
ll read()
{
ll aa=,bb=;char cc=getchar();
while(cc>''||cc<''){if(cc=='-') bb=-;cc=getchar();}
while(cc<=''&&cc>=''){aa=aa*+cc-'';cc=getchar();}
return aa*bb;
}
void init()
{
fac[]=;inv[]=;facinv[]=;
for(ll i=;i<=;i++){
if(i!=) inv[i]=(mod-mod/i)*inv[mod%i]%mod;
fac[i]=fac[i-]*i%mod;
facinv[i]=facinv[i-]*inv[i]%mod;
}
}
ll C(ll x,ll y)
{
return fac[x]*facinv[y]%mod*facinv[x-y]%mod;
}
int main()
{
T=read();init();
while(T--) n=read(),printf("%lld\n",C(n+n,n));
return ;
}

排列组合

T3 回文

我只会暴力,我不会马拉车的部分分

$g[i][j]$表示从$i$到$j$是否是回文串,转移很简单,$g[i][j]=1$ $(s[i]==s[j]$&&$g[i+1][j-1]==1)$,边界要特判一下,一个奇数边界,一个偶数边界

$f[i][j]$表示$i$到$j$中一共有多少个回文串,转移稍用容斥,$f[i][j]=f[i+1][j]+f[i][j-1]-f[i+1][j-1]+g[i][j]$,这个边界其实没有判的必要

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int n,m,f[][];
char s[];
bool g[][];
int read()
{
int aa=,bb=;char cc=getchar();
while(cc>''||cc<''){if(cc=='-') bb=-;cc=getchar();}
while(cc<=''&&cc>=''){aa=(aa<<)+(aa<<)+(cc^'');cc=getchar();}
return aa*bb;
}
int main()
{
scanf("%s",s+);n=strlen(s+);
for(int i=n;i>=;i--){
g[i][i]=;
if(s[i]==s[i+]) g[i][i+]=;
for(int j=i+;j<=n;j++) if(s[i]==s[j]&&g[i+][j-]) g[i][j]=;
}
for(int i=n;i>=;i--)
for(int j=i;j<=n;j++)
f[i][j]=f[i+][j]+f[i][j-]-f[i+][j-]+g[i][j];
m=read();int l,r;
for(int i=;i<=m;i++) l=read(),r=read(),printf("%d\n",f[l][r]);
return ;
}

回文

不想退役就静下来

10.1 csp-s模拟测试(b) X国的军队+排列组合+回文的更多相关文章

  1. csp-s模拟测试10.1(b)X 国的军队,排列组合, 回文题解

    题面:https://www.cnblogs.com/Juve/articles/11615883.html X 国的军队: 好像有O(T*N)的直接贪心做法 其实多带一个log的二分也可以过 先对所 ...

  2. 安装nginx python uwsgi环境 以及模拟测试

    uwsgi帮助文档: http://uwsgi-docs-cn.readthedocs.io/zh_CN/latest/WSGIquickstart.html http://uwsgi-docs.re ...

  3. [考试反思]0729NOIP模拟测试10

    安度因:哇哦. 安度因:谢谢你. 第三个rank1不知为什么就来了.迷之二连?也不知道哪里来的rp 连续两次考试数学都占了比较大的比重,所以我非常幸运的得以发挥我的优势(也许是优势吧,反正数学里基本没 ...

  4. Android单元测试与模拟测试详解

    测试与基本规范 为什么需要测试? 为了稳定性,能够明确的了解是否正确的完成开发. 更加易于维护,能够在修改代码后保证功能不被破坏. 集成一些工具,规范开发规范,使得代码更加稳定( 如通过 phabri ...

  5. Mock 模拟测试简介及 Mockito 使用入门

    Mock 是什么mock 测试就是在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法.这个虚拟的对象就是mock对象.mock对象就是真实对象在调试期间的代 ...

  6. Mac下Jmeter快速安装与入门-模拟测试Post请求及设置Http头

    [1]去Apache官网下载 Binaries系列的最新Jmeter.gz包 [2]下载到本地之后解压缩,进入到解压之后的目录然后,找到apache-jmeter-4.0/bin/jmeter.sh ...

  7. [2018冬令营模拟测试赛(二十一)]Problem A: Decalcomania

    [2018冬令营模拟测试赛(二十一)]Problem A: Decalcomania 试题描述 输入 见"试题描述" 输出 见"试题描述" 输入示例 见&quo ...

  8. 【转】利用Python中的mock库对Python代码进行模拟测试

    出处 https://www.toptal.com/python/an-introduction-to-mocking-in-python http://www.oschina.net/transla ...

  9. noi2019模拟测试赛(四十七)

    noi2019模拟测试赛(四十七) T1与运算(and) 题意: ​ 给你一个序列\(a_i\),定义\(f_i=a_1\&a_2\&\cdots\&a_i\),求这个序列的所 ...

随机推荐

  1. Noip2016Day2T3 愤怒的小鸟

    题目链接 problem 平面内有n个点,每次可以确定一条过原点且开口向上的抛物线,将这条抛物线上所有的点都删去.问最少需要删几次可以删掉全部的点. solution n比较小,直接状压一下.因为已经 ...

  2. 在 ASP.NET Core 项目中使用 npm 管理你的前端组件包

    一.前言 在项目的前端开发中,对于绝大多数的小伙伴来说,当然,也包括我,不可避免的需要在项目中使用到一些第三方的组件包.这时,团队中的小伙伴是选择直接去组件的官网上下载,还是图省事直接在网上搜索,然后 ...

  3. Luogu P2570 [ZJOI2010]贪吃的老鼠

    Luogu P2570 [ZJOI2010]贪吃的老鼠 题目描述 奶酪店里最近出现了\(m\)只老鼠!它们的目标就是把生产出来的所有奶酪都吃掉.奶酪店中一天会生产\(n\)块奶酪,其中第\(i\)块的 ...

  4. DatabaseLibrary -数据库操作

    操作数据库: Table Must Exist 验证表必须存在,存在则Pass,反之Fail Delete All Rows From Table 删除数据库中表的所有行 Execute Sql St ...

  5. java.lang.ClassNotFoundException: XXX (no security manager: RMI class loader disabled)

    在搞RMI远程发布,consumer去获取rmi远程服务的代理对象的时候出现了如下的错误 问题发现: 由于我发布的对象的包路径和获取的对象的包路径不一致,导致了这样的问题 解决方案: 包路径改为一致就 ...

  6. go-面向对象编程(下)

    面向对象编程思想-抽象 抽象的介绍 我们在前面去定义一个结构体时候,实际上就是把一类事物的共有的 属性( 字段)和 行为( 方法)提取 出来,形成一个 物理模型(结构体).这种研究问题的方法称为抽象 ...

  7. Java生鲜电商平台-商品基础业务架构设计-商品设计

    Java生鲜电商平台-商品基础业务架构设计-商品设计 在生鲜电商的商品中心,在电子商务公司一般是后台管理商品的地方.在前端而言,是商家为了展示商品信息给用户的地方,它是承担了商品的数据,订单,营销活动 ...

  8. CSS字体属性

    CSS字体属性 CSS Fonts(字体)属性拥有定义字体系列.大小.粗细和文字样式(如斜体) 字体系列 <style type="text/css"> div{ fo ...

  9. git设置多账户

    1.设置公司gitlab 0.先给git 设置一个全局的账户, 如果是公司的电脑环境, 全局的账户当然是用你在公司的邮箱了 git config --global user.name "yo ...

  10. 类,接口,final

    继承extends 子类实例化过程: 子类中所有的构造方法默认都会访问父类中空参的构造方法 因为每一个子类的构造方法的提议行都有一条默认的语句super(); this super final修饰类, ...