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),有两场比赛.以下表的形式列出了两场比赛的名次.(有的队伍没有参赛或只参加了一 ...
随机推荐
- class3_Entry & Text 输入和文本框
程序总体运行效果图如下; #!/usr/bin/env python # -*- coding:utf-8 -*- # -------------------------------------- ...
- 剑指offer——30栈的压入、弹出序列
题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压 ...
- Day9 - 异步IO\数据库\队列\缓存
本节内容 Gevent协程 Select\Poll\Epoll异步IO与事件驱动 Python连接Mysql数据库操作 RabbitMQ队列 Redis\Memcached缓存 Paramiko SS ...
- js面向对象编程:this究竟代表什么?第二篇
总觉得自己弄明确了js中this的含义.this总是指向调用方法的对象,作为方法调用,那么this就是指实例化的对象.但前几天自己写脚本却遇到了一个非常奇怪的问题. 代码例如以下: ...
- Lucene TFIDFSimilarity评分公式详解
版权声明:本文为博主原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/zteny/article/details/ ...
- Java基础知识之常见关键字以及概念总结
static 特点: 随着类的加载而加载 优先于对象存在 被所有对象所共享 可以直接被类名调用 使用注意: 静态方法只能访问静态成员 但是非静态成员可以直接访问静态成员 静态方法中不可用使用this, ...
- WebApi 路由机制剖析
阅读目录 一.MVC和WebApi路由机制比较 1.MVC里面的路由 2.WebApi里面的路由 二.WebApi路由基础 1.默认路由 2.自定义路由 3.路由原理 三.WebApi路由过程 1.根 ...
- 纯css制作三级菜单
<!DOCTYPE html> <html> <head> <title>三级菜单</title> <meta charset=&qu ...
- leetcode-50-pow()
题目描述: 方法一: class Solution: def myPow(self, x: float, n: int) -> float: if n<0: x = 1/x return ...
- All you need to know about: solder mask and paste mask
1, 从字面理解 (1) 从字面理解,solder mask意指要mask住需要solder的地方.那么被mask的是谁呢?是绿油层.可以把默认形态的绿油层想象成与PCB板形状.面积相同,solder ...