18多校8th
a-容斥原理(带限制的不定方程)
#include<bits/stdc++.h>
using namespace std;
#define mod 998244353
#define ll long long
#define maxn 500005
ll n,m,k;
ll inv[maxn],f[maxn],invf[maxn];
void init(){
inv[]=inv[]=;
for(int i=;i<maxn;i++)
inv[i]=(mod-mod/i)*inv[mod%i]%mod;
f[]=f[]=invf[]=invf[]=;
for(int i=;i<maxn;i++){
f[i]=f[i-]*i%mod;
invf[i]=invf[i-]*inv[i]%mod;
}
}
ll C(ll a,ll b){
if(a< || b< || a>b)return ;
return f[b]*invf[a]%mod*invf[b-a]%mod;
}
int main(){
int T;cin>>T;init();
while(T--){
scanf("%lld%lld%lld",&n,&m,&k);
int cur=;
ll ans=;
for(int i=;i*n<=k;i++){
ans+=cur*C(m-,k+m-i*n-)*C(i,m)%mod;
ans=(ans%mod+mod)%mod;
cur*=-;
}
cout<<ans<<endl;
}
}
E-水题
#include <bits/stdc++.h>
using namespace std; #define REP(i,s,t) for(int i=s;i<=t;i++)
char mpa[][]; void rotatec(int x1,int y1,int x2,int y2){
char a=mpa[x1][y1];
char b=mpa[x1][y2];
char c=mpa[x2][y1];
char d=mpa[x2][y2];
mpa[x1][y1]=c;
mpa[x1][y2]=a;
mpa[x2][y1]=d;
mpa[x2][y2]=b;
} void rotater(int x1,int y1,int x2,int y2){
char a=mpa[x1][y1];
char b=mpa[x1][y2];
char c=mpa[x2][y1];
char d=mpa[x2][y2];
//printf("a=%c b=%c c=%c d=%c \n",a,b,c,d);
mpa[x1][y1]=b;
mpa[x1][y2]=d;
mpa[x2][y1]=a;
mpa[x2][y2]=c;
//printf("1=%c 2=%c 3=%c 4=%c \n",mpa[x1][y1],mpa[x1][y2],mpa[x2][y1],mpa[x2][y2]);
} int main(){
int T;cin>>T;
while(T--){
int q;cin>>q;
REP(i,,)REP(j,,)cin>>mpa[i][j];
while(q--){
string str;cin>>str;
// cout<<"str[0]="<<str[0]<<endl;
// cout<<"str[1]="<<str[1]<<endl;
if(str[]==''){
if(str[]=='C'){
rotatec(,,,);
}else if(str[]=='R'){
rotater(,,,);
}
}else if(str[]==''){
if(str[]=='C')rotatec(,,,);
else rotater(,,,);
}else if(str[]==''){
if(str[]=='C')rotatec(,,,);
else rotater(,,,);
}else if(str[]==''){
if(str[]=='C')rotatec(,,,);
else rotater(,,,);
}
}
REP(i,,){
REP(j,,){
printf("%c",mpa[i][j]);
}puts("");
}
}
}
j-线段树好题(查找区间[l,r[第一个非空元素,开全局变量)
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
#define maxn 100005 int a[maxn],dp1[maxn],dp2[maxn],T,n,m,p,q,p2; #define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
int M1[maxn<<],M2[maxn<<];
void pushup(int rt){
M1[rt]=max(M1[rt<<],M1[rt<<|]);
if(M1[rt<<]>=M1[rt<<|])M2[rt]=M2[rt<<];
else M2[rt]=M2[rt<<|];
}
void build(int l,int r,int rt){
if(l==r){M1[rt]=a[l];M2[rt]=l;return;}
int m=l+r>>;
build(lson);build(rson);
pushup(rt);
}
void query1(int l,int r,int rt,int L,int R){
if(l>=L && r<=R){if(M1[rt]>a[p2])p2=M2[rt];return;}
int m=l+r>>;
if(L<=m)query1(lson,L,R);
if(R>m)query1(rson,L,R);
}
void query(int l,int r,int rt,int L,int R,int k){
if(l==r){if(M1[rt]>k)p2=min(p2,l);return;}
int m=(l+r)/;
if(l>=L&&r<=R){
if(M1[rt<<]>k)query(lson,L,R,k);
else if(M1[rson]>k)query(rson,L,R,k);
return;
}
if(L<=m)query(lson,L,R,k);
if(R>m)query(rson,L,R,k);
}
void init(){
for(int i=n;i;i--){
p2=n+;query(,n,,i,n,a[i]);
if(p2>n)p2=;dp2[i]=dp2[p2]+;
}
}
int main(){
scanf("%d",&T);
while(T--){
int Mx=;
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++)scanf("%d",&a[i]);
for(int i=;i<=n;i++){
if(a[i]>Mx) dp1[i]=dp1[i-]+,Mx=a[i];
else dp1[i]=dp1[i-];
}
build(,n,);
init(); while(m--){
int p,q,ans=;
scanf("%d%d",&p,&q);p2=;
if(p!=)query1(,n,,,p-);
ans+=dp1[p2];
if(q>a[p2]) ans++;
else q=a[p2];p2=n+;
if(p!=n) query(,n,,p+,n,q);
if(p2<=n) ans+=dp2[p2];
printf("%d\n",ans);
}
}
}
18多校8th的更多相关文章
- 2016多校8th 1008【线段树-神题】
题意: T N M N个数 M个操作 一个数组A, 有3个操作 1 l r x,a[l]-a[r]都+x 2 l r,a[i]=sqrt(a[i]),l<=i<=r 3 l r,求和,a[ ...
- java 实现从15位~18位的身份证号码转换,校验中国大陆公民身份证、香港居民身份证、澳门身份证和台湾身份证。
package xidian.sl.netcredit.util; /** * Copyright (C) 2009-2010 Yichuan, Fuchun All rights reserved. ...
- 走楼梯[XDU1031]
Problem 1031 - 走楼梯 Time Limit: 1000MS Memory Limit: 65536KB Difficulty: Total Submit: 724 Accep ...
- java对身份证验证及正则表达式解析
原文地址:http://www.cnblogs.com/zhongshengzhen/ java对身份证验证及正则表达式解析 package service; import java.text.Par ...
- Java 常用正则表达式,Java正则表达式,Java身份证校验,最新手机号码正则表达式
Java 常用正则表达式,Java正则表达式,Java身份证校验,最新手机号码校验正则表达式 ============================== ©Copyright 蕃薯耀 2017年11 ...
- java 身份证工具类
package com.app.wx.common.util; import org.apache.commons.lang3.StringUtils; import java.text.ParseE ...
- js身份证校验
通过js实现对15位或者18位身份证格式校验: 通过调用idCardNoUtil.checkeIdCardNo(idCardNo)传入身份证号码,实现校验. var idCardNoUtil = { ...
- Java的身份证号码工具类
/** * Copyright (C) 2009-2010 Yichuan, Fuchun All rights reserved. * Licensed to the Apache Software ...
- POJ1030 Rating
题目来源:http://poj.org/problem?id=1030 题目大意:有100支队伍(编号1->100),有两场比赛.以下表的形式列出了两场比赛的名次.(有的队伍没有参赛或只参加了一 ...
随机推荐
- 27-Ubuntu-远程管理命令-01-关机和重启
关机和重启--shutdown 注: 不指定选项和参数,默认表示1分钟之后关闭电脑 远程维护服务器时,最好不要关闭系统而应该重启 实例1:立刻关机 shutdown -h now 实例2:未带任何参数 ...
- 最短路(sp
#include<stdio.h> #include<iostream> #include<queue> using namespace std; #define ...
- Neo4j中實現自定義中文全文索引
資料庫檢索效率時,一般首要優化途徑是從索引入手,然後根據需求再考慮更復雜的負載均衡.讀寫分離和分散式水平/垂直分庫/表等手段:索引通過資訊冗餘來提高檢索效率,其以空間換時間並會降低資料寫入的效率,因此 ...
- 随笔-ansible-4
触发器: 一个任务同时调用多个触发器: 为远程主机上的用户设置环境变量: 保存前一步命令的输出结果,并保存到foo中: 添加环境变量的另一种方式: 注意:lineinfile模块只适用于修改少量环境变 ...
- 22个Photoshop网页设计教程网站推荐
这些网站都会经常更新一些优秀且高质量的Web界面设计教程.如果你热爱网页设计并且经常搜集各种界面设计教程,那么你一定要把下面这些网站收藏起来. 您还可以参考以下网页设计相关教程及资源:<Web ...
- JDBC_数据库连接池工具类
//定义一个类JDBCUtils public class JDBCUtils { //1.定义成员方法 private static DataSource ds; //2.提供静态代码块 stati ...
- Error: Cannot find module '@babel/core'
报错如下 产生原因 babel-loader和babel-core版本不对应所产生的, babel-loader 8.x对应babel-core 7.x babel-loader 7.x对应babel ...
- 贪心+MST——cf1095F
开始看错求最短路了.. 但是MST的思路和最短路也差不多 就是先不考虑特殊边,用最小点做一个生成树 然后加入特殊边,进行一次krus即可 #include<bits/stdc++.h> # ...
- VC中隐藏和显示IDC_STATIC
void CImageShowAndHideDlg::OnBnClickedButton1() //隐藏 { CWnd* pWnd = GetDlgItem(IDC_STATIC); ...
- IDEA被删除的模块在编译时会再次出现
工程根目录下.idea文件->compiler.xml,删除多余的model,workspace.xml->删除带有无用的target标签