太弱。還是太弱。
拉不開分差,離第一機房分數線估計還是300多分。
但是,還是要罵:xx出題人。
部分分非常少且沒有意義,t1基本只有0/純暴力20/100三個檔,
t2正解是n2但是n3一分不給,還要卡n2的空間,t3的n5有51分但沒有任何提示,除了送了與正解根本就無關的7分。
而且造的資料還出了鍋,這個出題人啊。。。
出題人是有多痛恨人類。
開考看題。
t1上來先看錯了題以為是xor,然後就是trie裸題了,然後直接開始打。
很快地打出來發現過不了樣例,然後發現是mod。
重新看題,全不會,傻眼了。
想再找一道最簡單的題先做穩住,但是無從下手。
剛開始t2有乙個n3的思路,發現沒有設分,就絕望了。
想了乙個半小時多吧,想出了n2,然後發現卡空間。
太弱了沒有直接想到正解,zkt就知道直接按x排序,我和臉和toot都是按y排的。
然後大臉秒掉了空間優化,toot放棄了空間優化拿80分走了。
我以為只有50分於是不想放棄,但是剩下兩題還沒有打,於是走了。
回去弄了乙個t1的隨機化+測試點分治暴力,然後忘記取模,本來40分的**炸成0了。
因為沒有打正解所以就沒有打對拍。。。
然後t3順手把特殊性質7分拿下,直接放棄。
回t2,對拍,然後空間優化。
思路還可以,可以節約25%的空間,但是忘了vector會翻倍導致空間浪費,於是結果就是和toot沒優化一樣,80分。
暴力也要打對拍。
對於卡空間的題要精打細算,注意vector的2倍空間。
get黑科技:resize。
還是沒有能把所有能拿下的分拿下,還是弱啊。。。
t1:養花
分塊。預處理塊中對於100001的所有詢問的最大答案。
預處理的方法類似於lower_bound但是可以記在陣列上就去掉了不必要的log。
開陣列lst[i]記錄下這個塊裡小於等於i的值裡的最大值。
那麼對於每乙個詢問就可以搞了:mod k的最大值就是max(lst[k-1],lst[2k-1]-k,lst[3k-1]-2k...)
而計算這個式子的複雜度是調和級數$\sum\limits_^ \frac = ln n$
所以總的複雜度就是$o(\sqrt \times 100001 \times ln 100001 + m \sqrt)$
然而其實不是$\sqrt$,會t的,塊要開的稍大一點(1300左右)跑的能快一些
1 #include2 #include3view codeusing
namespace
std;
4#define s 1234
5#define n 100001
6int lst[100005],n,m,x[130005],ans[101][130005],bl[130005];7
intmain()
17 ans[i][j]=max(ans[i][j],lst[k-1]%j);18}
19}20for(int t=1,l,r,q;t<=m;++t)printf("
%d\n
",ans);28}
29 }
思路積累:
t2:折射
dp式子都不一樣。我說我的按y排序後的n2空間的了。(因為另一種我並想不到)
先把x離散化,然後按y排序。我是dp[i][j]表示選到了第i個裝置,上上個選的裝置的x是j。
先考慮n3,emm還是不說了吧真的是暴力啊,加個if就行。
然後其實我們發現是乙個區間加,那麼字首和一下複雜度就對了。
這時候的dp[i][x[j]]+=dp[j][x[i]];
我們發現對於每乙個i只從前面的i-1項轉移而來,那麼總的就是1/2 n2而不是n2
那麼我們把要加的專案提前放進vector裡,把dp陣列滾動,就不會再炸空間了。
1 #include2 #include3 #include4view codeusing
namespace
std;
5 vectornum[6001
];6 vectorpos[6001];7
int mod(int p)
8struct ps}p[6005];9
bool com(ps a,ps b)
10int dp[6001
],n,ans;
11int
main()
28 printf("
%d\n
",mod(ans+n));
29 }
思路積累:
t3:畫作
大神題。
有乙個結論就是最優方案中一定有一種的所有操作的交集不是空集。
那麼我們只要抓住某乙個點向四周擴充套件,把所有同色區域取反就好了,知道全部區域都是白色。
複雜度$o(n^5)$
同色區域被多次擴充套件了,我們只在乎最遠的點幾次能擴充套件幾次。
同色連0邊,異色連1邊,跑bfs即可。
因為懶得打雙端佇列所以開了100個佇列。。。(因為曼哈頓距離不會超過100)
1 #include2 #include3view codeusing
namespace
std;
4const
int xx=,yy=;
5#define tx x+xx[p]
6#define ty y+yy[p]
7char s[55][55];int o[55][55],n,m,dt[55][55],qx[105][2555],qy[105][2555],qh[105],qt[105],ans=123;8
intmain()
23int mx=0;24
for(int x=1;x<=n;++x)for(int y=1;y<=m;++y)mx=max(mx,dt[x][y]),dt[x][y]=1000
;25 mx+=mx&1^o[i][j];
26 ans=min(ans,mx);
27 }printf("
%d\n
",ans);
28 }
考試反思 1114csp s模擬測試115 零遲
最後一次了,允許自己混進榜裡吧。沒有心態,原題不會做 真的忘了 t2的搜尋沒有分。零 遲 酷刑 只有在最後的時刻才開始意識到,一切的一切都已經晚了。就在眼前了。沒有機會了。退役,告別oi,粉碎夢想,這,就是最嚴苛的酷刑。生存,生存!hzoi2018!所有人!一年走來,我們還要繼續走下去!csp s,...
考試反思 1112csp s模擬測試111 二重
還是ak場。考前信心賽?而且t3的部分分還放反了所有80的都其實只有50。總算在ak場真正ak了一次。手感好,整場考試很順利。要不是因為t3是原題可能就沒這麼好看了。20mint1,50mint2,去趟廁所回來70min想到t3,110min寫完調完對拍完,然後去學skyh寫平衡樹了。然後我發現我不...
考試反思 1110csp s模擬測試108 消遣
是套廢題。t1題面錯了,t2細節多而暴力 部分分,t3題目錯了。t1 打表 題面應該是輸出差值期望而不是答案值期望。看到題目,果斷打表。答案就是所有值差之和除2的k次方。1 include2 int k,a 333333 long long ans 3int main view code t2 蛇 ...