2018 7 20模擬考試

2022-03-30 07:06:18 字數 3107 閱讀 4591

這次的題...很水...然而還是差點爆零

t1 題目簡述:給定乙個序列,求區間最大子段和(帶修改操作)。

n<=500000,m<=100000

解題思路:線段樹維護即可。(gss3原題...資料範圍都不變...出題人好懶)

#include#include

#include

#include

#include

#include

#define inf 0x3f3f3f3f

using

namespace

std;

int n,m,a[500010

];struct

uio

intlmx,rmx,mx,sum;

}tree[

2000010

];void pushup(int

x)void build(int now,int l,int

r)

int mid=(l+r)>>1

; build((now

<<1

),l,mid);

build(((now

<<1)|1),mid+1

,r);

pushup(now);

}void revise(int now,int l,int r,int to,int

k)

int mid=(l+r)>>1

;

if(to<=mid) revise((now<<1

),l,mid,to,k);

else revise(((now<<1)|1),mid+1

,r,to,k);

pushup(now);

}uio query(

int now,int l,int r,int l,intr)}

intmain()

}return0;

}

t2 題意簡述:有n個格仔,每次最多走k個,問走到第n格有多少種走法。答案對7777777取模。

1<=n<=2^31-1,1<=k<=10

解題思路:一看n這麼大,考慮矩陣加速。

發現遞推過程類似斐波那契數列,因此構造矩陣如下。(以k=5為例)

000

0101

0010

0101

0001

1

然後求qpow(matrix.a,n)即可。

注:以下**來自sdfzsyq大佬。(其實就是我懶...)

#include#include

#include

#include

#define ll long long

using

namespace

std;

const

int mod = 7777777

;int

n,k;

struct

mat mat

operator*(const mat &h)

}f,ans,st;

inline

void fast_pow(mat a,intb)}

intmain()

for(register int i=2;i<=k;i++) f.a[i][i-1]=1

;

for(register int i=1;i<=k;i++) f.a[i][k]=1

;

for(register int i=1;i<=k;i++) st.a[i][i]=1

; fast_pow(f,n);

printf(

"%lld\n

",st.a[k][k]);

return0;

}

t3 題意簡述:求矩形面積並。

n<=100,座標數值絕對值<=10^8

解題思路:掃瞄線。

由於資料太水,因此本題可以用o(n^2)水過。

坐在我旁邊的erkkierkko大佬說n應該開到10^6。

如果按照erkkierkko大佬的資料範圍,本題**應加上線段樹優化+卡常。

複雜度o(nlogn)。

#include#include

#include

#include

#include

#include

#define inf 100000001

#define inf 0x3f3f3f3f

#define ll long long

using

namespace

std;

ll n,ans,a[

210],sec[210][110],sec1[210][110],vis[110

];struct

uiomat[

110];

struct

oiutmp[

110];

bool

cmp(oiu x,oiu y)

intmain()

sort(a+1,a+1+2*n);

ll num=unique(a+1,a+1+2*n)-a-1

;

for(ll i=1;i<=n;i++)

for(ll i=1;i<=200;i++)

for(ll k=1;k<=n;k++)

if(vis[k])

tmp[++cnt].u=mat[k].u,

tmp[cnt].d=mat[k].d;

sort(tmp+1,tmp+1+cnt,cmp);

ll mu=tmp[1].u,md=tmp[1

].d;

for(ll k=2;k<=cnt;k++)

num+=mu-md;

ans+=num*(sec1[i+1][1]-sec1[i][1

]); }

printf(

"%lld\n

",ans);

return0;

}

2018 7 20學習日誌

學習日誌 今日學習任務 基於微控制器的電子秒錶設計 開始,暫停,繼續,清空 今日任務完成情況 詳細說明本日任務是否按 計畫完成,開發的 量 按照計畫和要求,完成當天的學習任務。對 進行進一步的修改和完善。今日開發中出現的問題彙總 思考如何在基本 的基礎上進行舉一反三以及進一步的拓展,使其能夠實現更多...

2017 9 7 模擬考試

問題描述 一張長度為 的紙帶,我們可以從左至右編號為0 紙帶最左端標號為 0 現在有 次操作,每次將紙帶沿著某個位置進行摺疊,問所有操作之後紙帶 的長度是多少。輸入格式 第一行兩個數字 如題意所述。接下來一行 個整數代表每次摺疊的位置。輸出格式 一行乙個整數代表答案。樣例輸入 5 2 3 5 樣例輸...

RHSCA模擬考試

開始考試 桌面是個黑框子 點選reboot按鈕,破解密碼 開機成功,輸入startx進入圖形介面 不能複製,要在物理機用ssh root 172.25.0.11 遠端連線,就可以複製貼上了 hostname server.reorigion5.example.com 四級網域名稱 有問題 10.配置...