咕了好久,也沒什麼想說的。
下一場就又**了。。。
t3特判打丟一句話丟了14分,剩下其實都還好。
t1:x
給我的第一感覺是建圖找聯通塊,但既然只要找聯通塊為什麼不直接並查集呢?
對於每乙個數字合併它的所有因子,求出現過的因子形成幾個聯通塊,特殊處理1。
二營長比我快了整整5分鐘做出來的。
1 #include2 #include3view codeusing
namespace
std;
4#define mod 1000000007
5#define int long long
6 vectorv[1000005];7
int x[100005],al[1000005],f[1000005],prime[1000005],cnt_prime;bool not_prime[1000005];8
int pow(int b,int t,int a=1)
9int find(int k)
10main()
16while(t--)
19for(int i=1;i<=cnt_prime;++i)f[prime[i]]=prime[i],al[prime[i]]=0;20
for(int i=1;i<=n;++i)if(x[i]!=1)for(int j=1;jj)
21 f[find(v[x[i]][j])]=find(v[x[i]][0]),al[v[x[i]][j]]=1;//
,printf("%lld %lld\n",v[x[i]][0],v[x[i]][j]);
22for(int i=1;i<=n;++i)if(x[i]!=1)al[v[x[i]][0]]=1;23
for(int i=1;i<=cnt_prime;++i)if(al[prime[i]])if(al[find(prime[i])]!=2
)24 al[find(prime[i])]=2,cnt1++;
25 printf("
%lld\n
",(pow(2,cnt1)-2+mod)%mod);26}
27 }
思路積累:
t2:y
莫名想到了雙向搜尋,因為20的範圍會很卡但是折半之後就很好,然後就好做了。
可以發現我們要求的路徑不限制終點。
那麼分別處理以1為起點所能形成的長度為d/2的路徑集合和以任意點為起點的路徑集合。
然後把兩種路徑的終點接起來就形成了長度為d的路徑。
比臉快23s搶到迷之首殺。
1 #include2view codeint can[11][99][1028],n,fir[99],l[20000],to[20000],v[20000],cnt,m,d,rev[1028],ans,can2[11][99][1028],al[1048577];3
void link(int a,int b,int v)
4int
main()
思路積累:
t3:z
31分給暴力了。
+14分單調:只要處理第乙個和最後乙個就行。x[2]=x[n],n=2;然而考場上沒寫n=2,t掉了。。。
+20分曲折:二分最早的不能覆蓋的段然後就是一次函式。
100分:大模擬。考場上有鍊錶+堆的思路。感覺很不好打就沒有打。
事實上的確很不好打,現在還沒有a。
思路和下發的std不太一樣。
考試反思 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 蛇 ...