6 27 考試總結

2022-05-31 06:18:14 字數 2828 閱讀 3044

今天真是鬼畜的一場考試,考的是xjoi上的題目

第三題看完題解至今仍是一臉懵逼,完全不懂如何實現

(話說出題人是怎麼想到把乙個二維問題三維化的owo

算了算了,前兩道題都是送分題,怪不得第三題這麼難

先說前兩題的題解把

首先第一題

我們可以預處理約數個數函式可以o(1)算出某個b對某個f的貢獻

然後我們考慮後面的點的新增狀態不會影響到前面的點的狀態

又發現當我們做到某個點的時候,由於b>0,所以這個點一定存在一種決策使得這個點對答案有貢獻

答案顯然是所有的v的和,這樣我們可以在o(nlogn)的時間內解決這個問題了

不過貌似由於資料太難構造了,所以貌似隨手寫寫隨機化也可以過owo

#include#include#include#include#includeusing namespace std;

typedef long long ll;

const int maxn=200010;

int n;

int b[maxn],f[maxn],v[maxn];

bool vis[maxn];

ll r[maxn],g[maxn],ans;

int main()

for(int i=1;i<=n;++i)scanf("%d",&b[i]);

for(int i=1;i<=n;++i)scanf("%lld",&r[i]);

for(int i=1;i<=n;++i)scanf("%d",&v[i]),ans+=v[i];

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

}printf("%lld\n",ans);

for(int i=1;i<=n;++i)return 0;

}

第二題owo 讀完題之後發現是資料結構裸題

離線之後按邊權sort一遍做樹鏈剖分用線段樹維護乙個類似連續子段和的東西就可以了

寫的時候一氣呵成,直接就拍上了(話說這麼裸的資料結構題目真的有寫的必要麼?

owo

#include#include#include#include#includeusing namespace std;

const int maxn=100010;

int n,m,u,v,w;

int a[maxn];

int dep[maxn],son[maxn],sz[maxn],fa[maxn];

int pos[maxn],fp[maxn],top[maxn],tot=0;

int ans[maxn];

int anc[maxn][20];

int h[maxn],cnt=0;

struct edgeg[maxn<<1];

struct edgec[maxn];

struct askq[maxn];

struct seg_treet[maxn<<2],tmp;

bool cmpq(const ask &a,const ask &b)

bool cmpc(const edge &a,const edge &b)

void add(int x,int y)

void read(int &num)

void dfs(int u,int f)return;

}void get_pos(int u,int f)return;

}void pre_lca()

if(p==q)return p;

for(int i=log;i>=0;--i)

}return fa[p];

}int get_point(int u,int d)return u;

}void build(int o,int l,int r)

int mid=(l+r)>>1;

build(o<<1,l,mid);build(o<<1|1,mid+1,r);

t[o].len=t[o<<1].len+t[o<<1|1].len;

}seg_tree merge(const seg_tree &a,const seg_tree &b)

void upd(int o,int l,int r,int p)

int mid=(l+r)>>1;

if(p<=mid)upd(o<<1,l,mid,p);

else upd(o<<1|1,mid+1,r,p);

t[o]=merge(t[o<<1],t[o<<1|1]);

}seg_tree ask(int o,int l,int r,int x,int y)

}seg_tree get_ask(int u,int v)seg_tree now=ask(1,1,n,pos[v],pos[u]);

if(flag)cur=now;

else cur=merge(now,cur);

return cur;

}int get_ans(int u,int v)

ans[q[i].id]=get_ans(q[i].x,q[i].y);

}for(int i=1;i<=m;++i)printf("%d\n",ans[i]);

return 0;

}

第三題上午更正題意沒有聽懂更正在說些什麼owo

然後用最小圓覆蓋亂寫搞模擬退火然後爆零了

後來下午弄懂了更正發現改了改原來模擬退火居然有20分

(然而直接輸出yes也有20分

以為200分的挺多的,結果下午過來之後發現大家第一題都掛了owo

沒錯,是第一題都掛了。。

我國果然是資料結構大國啊qaq

第二題ac人數遠超第一題ac人數

不過貌似這套題差不多跟noi day1 難度相仿?

6 27學習筆記

text shadow屬性的使用方法 在css3我們可以是用text shadow屬性給頁面上的文字潭加陰影效果,text shadow在 css2.1的時候是被刪除了的乙個屬性,但是呢在3.0的css中又恢復了使用。text shadow的使用方法 text shadow length lengt...

考試總結 CQOI2017 考試總結

再奮鬥一年,爭取ak noip2016 cqoi2017 這是去年我立的flag。看考場,電腦挺快,而且配置和評測機一樣,可以放心的在自己的電腦上卡常測試啦,好評。碼了一道fft的題,沒網只好拷著回家交,鍵盤蜜汁小,enter佔據了兩行,旁邊還有關機按鈕。座位安排奧妙重重,和巴蜀dyf大神坐在一起。...

627 交換工資

給定乙個 salary 表,如下所示,有 m 男性 和 f 女性 的值。交換所有的 f 和 m 值 例如,將所有 f 值更改為 m,反之亦然 要求只使用乙個更新 update 語句,並且沒有中間的臨時表。注意,您必只能寫乙個 update 語句,請不要編寫任何 select 語句。例如 id nam...