CC NOV17
PERPALIN 可以考虑最后的状态可以是两个非常长而且相同的前缀和后缀中间再加一小段,然后就是不断缩小区间至出解
CHEFHPAL 发现当字符集大于等于3的时候abc循环一定是没有大于1的回文子串的,现在考虑字符集为2的情况,我是打表发现的,1-8可以暴力做,大于等于9的部分答案都可以做到4,只要abaabb循环就好了
CSUBQ 答案其实就是没有大于R的区间个数-没有大于等于L的区间个数,可以建两个线段树分别维护,询问就是全1的区间个数,就可以做了
SEGPROD 其实这是个小技巧,我在knowledge
里有写
我贴贴代码在下面:
PERPALIN:
const int N=1e5+11;
char s[N];
int n;
int solve(int n,int p) {
while(n > 3 && p != 1 && n != p) {
if(n<p) {
if(p%n) return -1;
else n=p;
}
if(n%p) return -1;
int t=(n&1);
n/=2,n%=p,n=2*n+t;
}
if(p<3 || (n&&n<3) || n%p) return -1;
if(p%2) {
rep(i,1,p/2)s[i]='a';
s[p/2+1]='b';
rep(i,p/2+2,p)s[i]='a';
} else {
rep(i,1,p/2) s[i]='a';
s[p/2]=s[p/2+1]='b';
rep(i,p/2+2,p)s[i]='a';
}
s[p+1]=0;
return p;
}
int main(){
int T=rd();
while(T--){
int n=rd(),p=rd();
int t=solve(n,p);
if(t==1 || t==-1) puts("impossible");
else {
rep(i,1,n/t) printf("%s",s+1);
putchar('\n');
}
}
}
CHEFHPAL:
const char s[]="abcdefghijklmnopqrstuvwxyz233333";
const char t[]="abaabb";
const string q[]={"","a","ab","abb","aabb","aaabb","aaabbb","aaababb","aaababbb"};
int main() {
int T=rd();
while(T--) {
int n=rd(),K=rd();
if(K==1) {
printf("%d ",n);
rep(i,1,n)putchar('a');
putchar('\n');
} else if(K>2) {
printf("1 ");
rep(i,1,n)putchar(s[(i-1)%K]);
putchar('\n');
} else {
if(n<=8) {
int a=(n<=4)?(n<=2?1:2):3;
printf("%d ",a);
cout<<q[n]<<endl;
} else {
printf("4 ");
rep(i,1,n) {
putchar(t[(i-1)%6]);
}
putchar('\n');
}
}
}
}
CSUBQ:
const int N=5e5+11;
inline ll calc(int n){return 1LL*n*(n+1)/2;}
struct Info{int l,r;ll tot;};
int n;
struct SegTree{
struct Node{
int l,r,siz;
ll tot;
} t[N<<2];
#define mid (L+R>>1)
#define All 1,1,n
#define lson o<<1,L,mid
#define rson o<<1|1,mid+1,R
void push_up(int o){
t[o].l=t[o<<1].l+(t[o<<1].l==t[o<<1].siz)*t[o<<1|1].l;
t[o].r=t[o<<1|1].r+(t[o<<1|1].r==t[o<<1|1].siz)*t[o<<1].r;
t[o].tot=t[o<<1].tot+t[o<<1|1].tot-calc(t[o<<1].r)-calc(t[o<<1|1].l)+calc(t[o<<1].r+t[o<<1|1].l);
}
void build(int o,int L,int R,int v=1){
Node *x=&t[o];
x->siz=R-L+1;
if(L==R)x->tot=x->l=x->r=v;
else{
build(lson,v),build(rson,v);
push_up(o);
}
}
void modify(int o,int L,int R,int v,int al){
Node *x=&t[o];
if(L==R)x->tot=x->l=x->r=al;
else{
if(v<=mid)modify(lson,v,al);
else modify(rson,v,al);
push_up(o);
}
}
Info query(int o,int L,int R,int l,int r){
if(L==l&&R==r)return (Info){t[o].l,t[o].r,t[o].tot};
else{
if(r<=mid)return query(lson,l,r);
else if(l>mid)return query(rson,l,r);
else{
Info a=query(lson,l,mid),b=query(rson,mid+1,r),c;
c.l=a.l+(a.l==mid-l+1)*b.l,c.r=b.r+(b.r==r-mid)*a.r;
c.tot=a.tot+b.tot-calc(a.r)-calc(b.l)+calc(a.r+b.l);
return c;
}
}
}
inline ll ask(int l,int r){return query(All,l,r).tot;}
inline void upd(int v,int x){modify(All,v,x);}
}s1,s2;
int main(){
#ifdef flukehn
freopen("test.txt","r",stdin);
#endif
n=rd();
int q=rd(),L=rd(),R=rd();
s1.build(All),s2.build(All);
while(q--){
int o=rd(),x=rd(),y=rd();
if(o==1){
s1.upd(x,y<=R),s2.upd(x,y<L);
} else {
// assert(x<=y);
printf("%lld\n",s1.ask(x,y)-s2.ask(x,y));
}
}
}
CC NOV17的更多相关文章
- Atitti.dw cc 2015 绿色版本安装总结
Atitti.dw cc 2015 绿色版本安装总结 1.1. 安装程序无法初始化.请下载adobe Support Advisor检测该问题.1 1.1.1. Adobe Application M ...
- 【Hello CC.NET】CC.NET 实现自动化集成
一.背景 公司的某一金融项目包含 12 个子系统,新需求一般按分支来开发,测完后合并到主干发布.开发团队需要同时维护开发环境.测试环境.模拟环境(主干).目前面临最大的两个问题: 1.子系统太多,每次 ...
- 浅谈iptables防SYN Flood攻击和CC攻击
------------------------本文为自己实践所总结,概念性的东西不全,这里粗劣提下而已,网上很多,本文主要说下目前较流行的syn洪水攻击和cc攻击------------------ ...
- checking for fcc ....no checking for cc .. no
源码编译,提示缺少gcc cc cl.exe 解决方案: yum install -y gcc glibc
- 编译器 cc、gcc、g++、CC 的区别
gcc 是GNU Compiler Collection,原名为Gun C语言编译器,因为它原本只能处理C语言,但gcc很快地扩展,包含很多编译器(C.C++.Objective-C.Ada.Fort ...
- [CC]区域生长算法——点云分割
基于CC写的插件,利用PCL中算法实现: void qLxPluginPCL::doRegionGrowing() { assert(m_app); if (!m_app) return; const ...
- [CC]点云密度计算
包括两种计算方法:精确计算和近似计算(思考:local density=单位面积的点数 vs local density =1/单个点所占的面积) 每种方法可以实现三种模式的点云密度计算,CC里面的 ...
- 【日常小记】统计后缀名为.cc、.c、.h的文件数【转】
转自:http://www.cnblogs.com/skynet/archive/2011/03/29/1998970.html 在项目开发时,有时候想知道源码文件中有多少后缀名为.cc..c..h的 ...
- error: command 'cc' failed with exit status 1
报错: Complete output from command /usr/bin/python -u -c "import setuptools, tokenize;__file__='/ ...
随机推荐
- cf1084d 非常巧妙的树形dp
/* 给定n城市,m条道路,每条路耗油w,每个点有油a[i],从任意点出发,求最大可以剩下的油 dp[i]表示从i开始往下走的最大收益,ans表示最大结果 因为走过的路不能走,所以可以想到最优解肯定经 ...
- 阿里云人脸识别测试接口出错 返回Body:{ "errno": 1031, "err_msg": "Invalid Image URL.", "request_id": "cdbe2927-e1bb-4eb1-a603-8fcd4b0b7fc8" }
错误信息如下 返回Body:{ "errno": 1031, "err_msg": "Invalid Image URL.", " ...
- IDEA中每次拷贝一个项目的时候必须标记一下配置文件resources,否则报错
- python基础知识之zip
names =['zhangning','lsl','lyq','xww']age = [1,2,3,4]for a,b in zip(names,age): print(a,b)S = 'abcde ...
- 009-Python-面向对象
1.面向对象: 1.1什么是类? 类:把一类事物的相同的特征和动作整合到一起就是类,类是一个抽象的概念: 1.2什么是对象? 对象:就是基于类而创建的一个具体事物(具体存在的)也是特征和动作整合到一起 ...
- python练习册0004题
在任意一个英文文档中,统计单词出现的次数, 分析: 本题不是很难,单词通常以空格隔开,但是有些单词后面跟一些特殊符号,只需把这些特殊符号替换掉就可以了, 代码一 import re file_name ...
- windows server 2012 R2 远程桌面授权模式尚未配置
windows server 2012 R2 远程桌面授权模式尚未配置,远程桌面服务将在120天内停止工作.如何破解这个宽限期,目前企业7位协议号码均不包含2012 R2以上授权. 那么只能蛋疼的“破 ...
- 卸载win10内置的onenote
powershell命令如下 get-appxpackage *onenote* | remove-appxpackage
- WARN conf.FlumeConfiguration: Could not configure sink sink1 due to: No channel configured for sink: sink1 org.apache.flume.conf.ConfigurationException: No channel configured for sink: sink1
1.错误如下所示,启动flume采集文件到hdfs案例的时候,出现如下所示的错误: 大概是说No channel configured for sink,所以应该是sink哪里配置出现了错误,百度了一 ...
- C#学习-方法
方法是由方法签名和一系列语句的代码块组成. 其中方法签名包括方法的访问级别(比如public或private).可修饰符(例如abstract关键字).方法名称和参数. C#也支持方法重载.方法重载指 ...