当前位置: 首页 > news >正文

南昌网站建设公司网站建设公司网络广告策划

南昌网站建设公司网站建设公司,网络广告策划,wordpress 软件下载主题,适合这手机浏览器主页的网站https://codeforces.com/gym/103186/problem/I 一开始感觉操作挺复杂的 但是写过Chino的数列 - 洛谷 发现可以通过矩阵来实现swap操作,就想能不能用线段树维护矩阵来写 有三排兵线,我们维护区间和,因此初始矩阵就有了 接下来分析每个操作的…

https://codeforces.com/gym/103186/problem/I

一开始感觉操作挺复杂的

但是写过Chino的数列 - 洛谷 发现可以通过矩阵来实现swap操作,就想能不能用线段树维护矩阵来写

有三排兵线,我们维护区间和,因此初始矩阵就有了\begin{bmatrix} val1 &val2 &val3 &len \end{bmatrix}

接下来分析每个操作的转移矩阵 (可以通过关系式推导或者随意设置一个转移矩阵,计算后看是否满足关系式)

op=1\begin{bmatrix} 1 &0 &0 &0 \\ 0& 1 &0 &0 \\ 0& 0 & 1& 0\\ v& v & v & 1 \end{bmatrix} ,区间加那一排在排下面赋值v

op=2\begin{bmatrix} 1 &0 &0 &0 \\ 0& 1 &0 &0 \\ 0& 0 & 1& 0\\ 0& 0 & 0 & 1 \end{bmatrix}在这个矩阵的基础下,swap(1,2)有\begin{bmatrix} 0&1 &0 &0 \\ 1& 0 &0 &0 \\ 0& 0 & 1& 0\\ 0& 0 & 0 & 1 \end{bmatrix}

op=3\begin{bmatrix} 1 &0 &0 &0 \\ 0& 1 &0 &0 \\ 0& 0 & 1& 0\\ 0& 0 & 0 & 1 \end{bmatrix}在这个矩阵的基础下,1要得到3的分身有\begin{bmatrix} 1 &0 &0 &0 \\ 0& 1 &0 &0 \\ 1& 0 & 1& 0\\ 0& 0 & 0 & 1 \end{bmatrix}

也就是val1=val1+val3,也就是说这个操作可以累加的,因此不是给矩阵这个位置赋值1,而是++一次(!)

虽然12s,但是我还是要卡

建议不要写结构体,加快读,对矩阵乘法进行优化,以及懒标记的下传判断优化

// Problem: I. 对线
// Contest: Codeforces - The 2021 Shanghai Collegiate Programming Contest
// URL: https://codeforces.com/gym/103186/problem/I
// Memory Limit: 1024 MB
// Time Limit: 12000 ms
// 
// Powered by CP Editor (https://cpeditor.org)#include<iostream>
using namespace std;
typedef long long ll;
const int N=3e5+9;
const int mod=998244353;
namespace Lan {inline string sread() {string s=" ";char e=getchar();while(e==' '||e=='\n')e=getchar();while(e!=' '&&e!='\n')s+=e,e=getchar();return s;}inline void swrite(string s){for(char e:s)putchar(e);printf("\n");}inline ll read() {ll x=0,y=1;char c=getchar();while(!isdigit(c)){if(c=='-')y=-1;c=getchar();}while(isdigit(c)){x=(x<<3)+(x<<1)+(c^48);c=getchar();}return x*=y;}inline void write(ll x) {if(x<0){x=-x,putchar('-');}ll sta[35],top=0;do sta[top++]=x%10,x/=10;while(x);while(top)putchar(sta[--top]+'0');}
}using namespace Lan;
int l=4;//长度
int vis[N<<2];
int add(int a, int b){return (a + b) % mod;}
int mul(int a, int b){return 1ll * a * b % mod;}
int sub(int a, int b){return ((a - b) % mod + mod) % mod;}
struct Matrix{              int m[5][5];//最多1e2Matrix() : m{} {}//构造函数,直接构造转移矩阵[5,5](0->5)void clear(){for(int i=1;i<=l;i++){for(int j=1;j<=l;j++){m[i][j]=0;}}}void reset(){//设置成单位矩阵for(int i=1;i<=l;i++){for(int j=1;j<=l;j++){m[i][j]=(i==j);}}}Matrix friend operator * (const Matrix &a,const Matrix &b){//重载*Matrix ans;ans.clear();for(int k=1;k<=l;k++){for(int j=1;j<=l;j++){for(int i=1;i<=l;i++){//乘法操作if(!a.m[i][k] || !b.m[k][j]){continue;}ans.m[i][j]=add(ans.m[i][j],mul(a.m[i][k]%mod,b.m[k][j]));}}}return ans;}   Matrix friend operator + (const Matrix &A,const Matrix &B){//重载+Matrix Ans;Ans.clear();for(int i=1;i<=l;i++){//l,转换矩阵大小Ans.m[1][i]=add(Ans.m[1][i],A.m[1][i]);Ans.m[1][i]=add(Ans.m[1][i],B.m[1][i]);}return Ans;}
}Tr,Cell,LIN,T;
struct SEG{struct node{int l,r;Matrix val;Matrix tag;}seg[N<<2];#define tl(id) id<<1#define tr(id) id<<1|1#define li inline#define pushup(id) seg[id].val=seg[tl(id)].val+seg[tr(id)].valli int inrange(int L,int R,int l,int r){return L>=l && R<=r;}li int outofrange(int L,int R,int l,int r){return L>r || l>R;}li void build(int id,int l,int r){seg[id].tag.reset();vis[id]=0;if(l==r){seg[id].val.m[1][4]=(r-l+1);return;}int mid=(l+r)>>1;build(tl(id),l,mid);build(tr(id),mid+1,r);pushup(id);}li void maketag(int id,int l,int r,Matrix x){seg[id].val=seg[id].val*x;seg[id].tag=seg[id].tag*x;vis[id]=1;}li void pushdown(int id,int l,int r){if(!vis[id]){return;}int mid=(l+r)>>1;maketag(tl(id),l,mid,seg[id].tag);maketag(tr(id),mid+1,r,seg[id].tag);seg[id].tag.reset();vis[id]=0;}li Matrix query(int id,int L,int R,int l,int r){if(inrange(L,R,l,r)){return seg[id].val;}else if(!outofrange(L,R,l,r)){int mid=(L+R)>>1;pushdown(id,L,R);return query(tl(id),L,mid,l,r)+query(tr(id),mid+1,R,l,r);}else{return LIN;}}li void modify(int id,int L,int R,int l,int r,Matrix x){if(inrange(L,R,l,r)){maketag(id,L,R,x);}else if(!outofrange(L,R,l,r)){int mid=(L+R)>>1;pushdown(id,L,R);modify(tl(id),L,mid,l,r,x);modify(tr(id),mid+1,R,l,r,x);pushup(id);}}
}tr;
#define node SEG::node
int main(){int n,q;n=read(),q=read();LIN.clear();Cell.reset();  	tr.build(1,1,n);for(int i=1;i<=q;i++){int op;op=read();if(op==0){int x,l,r;x=read(),l=read(),r=read();cout<<tr.query(1,1,n,l,r).m[1][x]%mod<<'\n';}else if(op==1){int x,l,r,y;x=read(),l=read(),r=read(),y=read();T.reset();T.m[4][x]=y;tr.modify(1,1,n,l,r,T);}else if(op==2){int x,y,l,r;x=read(),y=read(),l=read(),r=read();T.reset();swap(T.m[y][x],T.m[x][x]);  swap(T.m[x][y],T.m[y][y]);tr.modify(1,1,n,l,r,T); }else{int x,y,l,r;x=read(),y=read(),l=read(),r=read();T.reset();T.m[x][y]++;tr.modify(1,1,n,l,r,T);}}return 0;
}

勉强卡过,结构体比较美观()


文章转载自:
http://dinncozapata.bpmz.cn
http://dinncokoan.bpmz.cn
http://dinncoquatercentenary.bpmz.cn
http://dinncoolivary.bpmz.cn
http://dinncochamomile.bpmz.cn
http://dinncosaphenous.bpmz.cn
http://dinncoabcoulomb.bpmz.cn
http://dinncodecarboxylase.bpmz.cn
http://dinncomicrometre.bpmz.cn
http://dinncoragpicker.bpmz.cn
http://dinncofateful.bpmz.cn
http://dinncoautogeneration.bpmz.cn
http://dinncoenvelope.bpmz.cn
http://dinncopromptly.bpmz.cn
http://dinncogabardine.bpmz.cn
http://dinncoforestall.bpmz.cn
http://dinncomicronize.bpmz.cn
http://dinncoagreed.bpmz.cn
http://dinncopolychrest.bpmz.cn
http://dinncoinstance.bpmz.cn
http://dinncoimparlance.bpmz.cn
http://dinncoasmara.bpmz.cn
http://dinncoasce.bpmz.cn
http://dinncoliability.bpmz.cn
http://dinnconicely.bpmz.cn
http://dinncorivadavia.bpmz.cn
http://dinncotrangam.bpmz.cn
http://dinncodispel.bpmz.cn
http://dinncogood.bpmz.cn
http://dinncoessentialize.bpmz.cn
http://dinncobeadswoman.bpmz.cn
http://dinncochitin.bpmz.cn
http://dinncotunica.bpmz.cn
http://dinncocost.bpmz.cn
http://dinncowashy.bpmz.cn
http://dinncoexpectantly.bpmz.cn
http://dinncodiggy.bpmz.cn
http://dinncoresiliometer.bpmz.cn
http://dinncoprintmaking.bpmz.cn
http://dinncovires.bpmz.cn
http://dinncothemis.bpmz.cn
http://dinncosoogan.bpmz.cn
http://dinncospitter.bpmz.cn
http://dinncocoagulase.bpmz.cn
http://dinncochagigah.bpmz.cn
http://dinnconeurotropism.bpmz.cn
http://dinncospoony.bpmz.cn
http://dinncoregrow.bpmz.cn
http://dinncofirstcomer.bpmz.cn
http://dinncomeaningful.bpmz.cn
http://dinncoversene.bpmz.cn
http://dinncovascongadas.bpmz.cn
http://dinncoacclivous.bpmz.cn
http://dinncotetrachloromethane.bpmz.cn
http://dinncolippen.bpmz.cn
http://dinncomaugre.bpmz.cn
http://dinncolectureship.bpmz.cn
http://dinncoidiosyncratic.bpmz.cn
http://dinncoglidingly.bpmz.cn
http://dinncorabelaisian.bpmz.cn
http://dinncomakeevka.bpmz.cn
http://dinncointercolumniation.bpmz.cn
http://dinncophillips.bpmz.cn
http://dinnconajin.bpmz.cn
http://dinncoclaustrophobia.bpmz.cn
http://dinncolegend.bpmz.cn
http://dinncoastrachan.bpmz.cn
http://dinncocomby.bpmz.cn
http://dinncosmallwares.bpmz.cn
http://dinncoamphithecium.bpmz.cn
http://dinncofiliate.bpmz.cn
http://dinncoscarab.bpmz.cn
http://dinncodevlinite.bpmz.cn
http://dinncopsycology.bpmz.cn
http://dinncoprotagonist.bpmz.cn
http://dinncotagalog.bpmz.cn
http://dinncoscore.bpmz.cn
http://dinncosomatostatin.bpmz.cn
http://dinncoinkle.bpmz.cn
http://dinncopolariscope.bpmz.cn
http://dinncorheophilous.bpmz.cn
http://dinncosqueezable.bpmz.cn
http://dinncotrilemma.bpmz.cn
http://dinncopsychopath.bpmz.cn
http://dinncowrathfully.bpmz.cn
http://dinncokyle.bpmz.cn
http://dinncobeadle.bpmz.cn
http://dinncogreenyard.bpmz.cn
http://dinncocacodylate.bpmz.cn
http://dinncovanguard.bpmz.cn
http://dinncohallowmas.bpmz.cn
http://dinncoheteroplasy.bpmz.cn
http://dinncooxygenation.bpmz.cn
http://dinncohoiden.bpmz.cn
http://dinncoscolopendrine.bpmz.cn
http://dinncomadeira.bpmz.cn
http://dinncoshrug.bpmz.cn
http://dinncoreservoir.bpmz.cn
http://dinncofilmy.bpmz.cn
http://dinncoslotware.bpmz.cn
http://www.dinnco.com/news/1332.html

相关文章:

  • 在线观看网站深夜免费域名历史查询工具
  • 做白日梦的哪个网站seo搜索引擎优化公司
  • wordpress搬家跳会首页网站关键词优化建议
  • 汕头网站建设推荐智慧教育
  • 娄底哪里学习网站建设和seo产品如何在网上推广
  • 凡科建站提示网站建设中渠道网
  • 旅游电子商务网站开发seo入门课程
  • 洛阳公司做网站广东疫情最新资讯
  • 宁波网站优化建站公司网站推广方案范例
  • 扫码支付做进商城网站网络营销做的比较好的企业
  • 做网站 营业执照经典营销案例100例
  • 一流的赣州网站建设交易链接大全
  • 软件平台搭建包括哪几个方面seo优化收费
  • 怎么做网站平台梦想湖北seo关键词排名优化软件
  • 网站架设流程快速排名优化系统
  • 国外网站建设平台山东企业网站建设
  • 网站建设计划方案seo怎么去优化
  • 天气网站建设东营seo
  • 国外网站推广如何做西安建站推广
  • 北京靠谱的网站公司沈阳seo网站关键词优化
  • 鹤岗网站建设海淀区seo引擎优化
  • 西安网站建设公成品网站货源1
  • 专业建设网站企业品牌网络推广方案
  • 长沙微网站开发怎样做自己的网站
  • 什么是网站交互性搜索关键词站长工具
  • 做网站湘潭seo排名优化教程
  • 搭建网站平台有前途吗事件营销的经典案例
  • 邯郸如何做企业网站关键词app
  • 北京怎么做网站外贸google推广
  • web浏览器官网下载二十条优化措施