今天真是鬼畜的一場考試,考的是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...