題目描述:小 x 是一位熱愛數學的男孩子,在茫茫的數字中,他對質數更有一種獨特的情感。小 x 認為,質數是一切自然數起源的地方。在小 x 的認知裡,質數是除了本身和 1 以外,沒有其他因數的數字。但由於小 x 對質數的熱愛超乎尋常,所以小 x 同樣喜歡那些雖然不是質數,但卻是由兩個質數相乘得來的數。於是,我們定義,乙個數是小 x 喜歡的數,當且僅當其是乙個質數,或是兩個質數的乘積。而現在,小 x 想要知道,在 l 到 r 之間,有多少數是他喜歡的數呢?l,r<10^7;q<10^5
成績:ac
題解:線性篩素數,在篩素數的同時用類似的方法篩出小x喜歡的數。
分析:只需一眼的大水題,非常正常的第一題。(。•́︿•̀。)
#include
#include
#include
#include
using
namespace
std;
const
int max=10000000;
const
int n=3000000+10;
inline
void getint(int&num)
}int t,tot,cnt,l,r,prime[n],like[n];
bool vis[max],flag[max];
inline
void init()
}}int main()
}
題目描述:小 x 正困在乙個密室裡,他希望盡快逃出密室。密室中有 n 個房間,初始時,小 x 在 1 號房間,而出口在 n 號房間。密室的每乙個房間中可能有著一些鑰匙和一些傳送門,乙個傳送門會單向地創造一條從房間 x 到房間 y 的通道。另外,想要通過某個傳送門,就必須具備一些種類的鑰匙(每種鑰匙都要有才能通過)。幸運的是,鑰匙在開啟傳送門的封印後,並不會消失。然而,通過密室的傳送門需要耗費大量的時間,因此,小 x 希望通過盡可能少的傳送門到達出口,你能告訴小 x 這個數值嗎?另外,小 x 有可能不能逃出這個密室,如果是這樣,請輸出 「no solution」。n<=5000,m<=6000,k<=10
成績:85
題解:把每個房間根據所有鑰匙的可能拆點,連邊然後spfa。
分析:每個節點輸入時用了位運算處理可以得到的鑰匙,然而key變數沒有清0,(這樣居然能水過去85分(。﹏。*)),很快寫出這道題後,大樣例一過,就有點太過自信了 (๑>m<๑) ,寫第二題時一直在但心時間的問題,造了極限資料卡時間,反而忽略了**正確性的檢查。
#include
#include
#include
#include
#include
#include
using
namespace
std;
const
int l=5000+10;
const
int n=6000000+10;
const
int m=20000000+10;
const
int inf=0x3f3f3f3f;
inline
void getint(int&num)
}int n,m,k,u,v,cnt,c,key,ed;
int id[l][1030],dis[n];
int fir[n],tar[m],nxt[m],w[m];
bool in[n];
inline
void link(int a,int b,int c)
inline
int spfa()
}int tmp=inf;
for(int i=0;i<=ed;i++)
tmp=min(tmp,dis[id[n][i]]);
if(tmp==inf) tmp=-1;
return tmp;
}int main()
for(int i=1;i<=m;i++)
int ans=spfa();
if(~ans) printf("%d\n",ans);
else
printf("no solution\n");
}
題目描述:在c國中有n位士兵,除士兵1外,每位士兵i均有且僅有一位士兵j作為他的直屬教官。士兵i被他的直屬教官j以及所有能管轄j的士兵所管轄。每位士兵也看做能管轄自己。每位士兵均有兩個屬性值:戰鬥力bi與領導力 li。現在c國要舉行q次閱兵,每次閱兵會指定一位士兵s做總指揮,士兵s需要訓練自己所管轄的所有士兵,並以最好的精神面貌迎接閱兵式。士兵s每次閱兵訓練時有一次機會(只能使用一次或不使用),可以邀請一位不受他管轄的士兵i來指導一位他所管轄的士兵j,並會使得士兵j的戰鬥力由bj提公升為bj+li,這次提公升僅對當次閱兵有效。士兵s訓練出的士兵隊伍所能展現出的精神力p為:max(bi%bj)士兵bi被bj所管轄現在c國主席想知道,每次閱兵的隊伍所能展現出的精神力p最大能是多少?請你幫助他。
成績:30
題解:很明顯可以看出來,在不請求不能管轄士兵幫助時,答案為子樹中第二大的值。但現在處理可以加l的情況,判斷如何使第二大的值盡量大,分幾種情形:(。。。)打if串太痛苦了,求出子樹中前三大的b,以及非子樹中前三大的l(不能重複),3^2列舉即可。關於如何維護前三大,利用dfs序,子樹的編號自然是連續的然用線段樹維護。
分析:思路其實很好想,然而維護時,我忘了dfs序這種神奇的東西,然後一直在調莫名其妙的樹dp(其實也有人用樹dp寫出來了,然而我一蒟蒻。。°(°ˊдˋ°) °)最後慶幸我10分鐘的暴力沒出什麼問題。
#include
#include
#include
#include
#include
#include
#define b first
#define l second
#define mp make_pair
#define pb push_back
#define lson x<<1
#define rson x<<1|1
using
namespace
std;
typedef
long
long ll;
typedef pair pii;
const
int n=300000+10;
inline
void getint(int&num)
}int n,t,now,s,fa[n],r[n],dfn[n];
int cnt,fir[n],tar[n],nxt[n],id[n];
ll b1[n<<2],b2[n<<2],b3[n<<2],b[5];
ll l1[n<<2],l2[n<<2],l3[n<<2],l[5];
pii sol[n];
inline
void link(int a,int b)
void dfs(int x)
inline
void update(int x)
inline
void build(int x,int l,int r)
int mid=(l+r)>>1;
build(lson,l,mid);
build(rson,mid+1,r);
update(x);
}void getmax_b(int x,int l,int r,int ql,int qr)
else
}void getmax_l(int x,int l,int r,int ql,int qr)
else
}int main()
cout
0;}
總結:這場考試失誤還是比較多的,雖然都不是很大的失誤但積累起來分數就比較低了,第三題還確實有沒想到的地方,思路比正解麻煩了一點,但第二題就非常遺憾了,連續了三場考試都有較大的失誤,,,感覺好尬。。(๑ő ő๑),有一種不夠緊張和專注,簡單題出毒,難題有想不出來的尷尬,做第三題時擔心前面是否有錯,檢查一二題時有擔心第三題來不及,,,感覺時間永遠不夠,,尷尬尷尬尷尬尷尬o( m _ pi )o下一場注意注意力還需要更集中,,不要莫名中二發作。。o( =•ω•= )m,不要浪費時間,保持緊張的狀態。。。↖(^ω^)↗ 考試總結 CQOI2017 考試總結
再奮鬥一年,爭取ak noip2016 cqoi2017 這是去年我立的flag。看考場,電腦挺快,而且配置和評測機一樣,可以放心的在自己的電腦上卡常測試啦,好評。碼了一道fft的題,沒網只好拷著回家交,鍵盤蜜汁小,enter佔據了兩行,旁邊還有關機按鈕。座位安排奧妙重重,和巴蜀dyf大神坐在一起。...
MBA考試總結
終於考完了 mba入學統考,兩年來參加了兩次,感覺還是挺辛苦和有壓力的。第一年沒有通過是因為之前了解太遲,大概準備了 20天左右,最後還是功成垂敗。09年其實也一直沒有心情複習的,逼到最後的 20天,狠了一把勁,還是狠狠的複習了幾天,貌似今年應該可以通過了。總結經驗如下 1 如果你決定去做一件事,請...
2016 7 14考試總結。
今天的考試,總的來說不難,但是考得很差,簡直 從中暴露出對知識的掌握不牢固,練習不夠等問題。1.求 方程x1 2x2 nxn m的所有非負整數解 x1,x2,xn 的個數。這個題目在加上取餘運算後就是乙個貨幣系統的問題。也就是揹包。難以接受自己連這是個揹包問題都沒看出來。3 2.其實邪狼王的貪婪也很...