2016 CCPC網路選拔賽 部分題解

2022-07-27 18:00:12 字數 2935 閱讀 6608

題意:有兩顆星球,一年的長度分別為37天和173天。問第n天時它們是否為新年的第一天。

思路:顯然  n 同時被37和173整除時,兩種曆法都在新年第一天,即 n 是 37*173=10001的倍數。

坑點:n的長度會達到1e7,我以為要用讀入掛之類的,手寫用getchar()讀入卻tle,直接scanf("%s", n)就沒事。

#include#include

using

namespace

std;

intmain()

else

}return0;

}

view code

ac**:

#include#include

using

namespace

std;

char n[10000010

];int

main()

printf(

"case #%d: %s\n

", ++cas, val==0?"

yes":"no"

); }

return0;

}

view code

題意:給n個正整數(最大素因子不超過2000),求n個數組成平方數的方案數。

思路:高斯消元模板題。

把每個數的素因子加入矩陣a中,設a高斯消元後的秩為 r,則自由元個數為 n - r, 組合方案數為 2^(n - r) - 1。

手寫的快速冪函式pow跟c++庫重名了導致一直wa。。。

ac**:

#include#include

#include

#include

using

namespace

std;

const

int maxn = 350

;const

int maxp = 2010

;const

int mod = 1e9+7

;typedef

long

long

ll;int

pri[maxp], cnt;

inta[maxp][maxn];

void

init()

}if(f) pri[cnt++] =i;

}}int add(int

k, ll val)

}return

row;

}ll mypow(ll a, ll n)

return

res;

}int gauss(int m, int

n)

}if(a[r][j])

for(int u=i+1;u)

} i++;

}j++;

}returni;}

intmain()

printf(

"case #%d:\n

", ++cas);

int r = gauss(row+1

, n);

printf(

"%lld\n

", mypow(2, n-r)-1

); }

return0;

}

view code

題意:給n個禮物,每個禮物a[i]件,分配給學生,每人兩件。要求1件可以任意,另一件必須相鄰學生種類不同。求可以分出去的最大學生數量。

思路:分析一下可以發現,禮物能否發完只取決於最多數量的那種。先排序,如果最多的禮物減去總和的一半比剩下種類的禮物總數還要多,則能發出去的數量由剩下種類的禮物決定,即 (sum-a[n-1])*2+1。否則全部都能發出去,人數即為 sum/2。

#include#include

#include

using

namespace

std;

int a[12

];int

main()

sort(a, a+n);

printf(

"case #%d: %d\n

", ++cas, min(sum/2, (sum-a[n-1])*2+1

)); }

return0;

}

view code

題意:給定空間中 n個點(n<=100),求滿足兩個條件的特殊四面體的個數。條件1:至少4條邊長度相同;條件2:如果只有4條邊長度相同,則剩下兩條邊不能相鄰。

思路:c(100, 4)不大,時限4s,暴力列舉即可。四個點不能共面,先求點積再叉積判斷是否為0,即四面體體積不能為0。

tm我再次敲錯了向量叉積函式cross。。。逐行debug才發現

ac**:

#include#include

#include

using

namespace

std;

struct

p p

operator-(const p&a)

p operator*(const p&b)

intdis()

void

print()

}p[210

];int cross(const p& a, const p&b)

intmain()

int ans = 0

;

for(int i=0;i)

} else }}

}}

}printf(

"case #%d: %d\n

", ++cas, ans);

}return0;

}

view code

題意:給乙個字串,可以把每個字母對映到數字。問變換後的最長上公升子串行的長度是多少。

題解:顯然答案為不同字母的個數。

**:略。

2019CCPC網路選拔賽補題

hdu6703 題意就不說了,直接分析吧。對於1操作,a pos 1e7,但是我們每次詢問是 1,n 範圍內的,這個操作顯然就是把這個點給刪了。對於2操作,詢問 1,r 區間內 k且不等於a i 1 i r 的最小的數。題目做法如下 對位置建權值線段樹,每個結點表示乙個區間,每個結點維護乙個區間的位...

2020CCPC 網路選拔賽總結

因為半年內很久沒有練習,剛開始腦子宕機了十分鐘之後才開始做題。13mina了1010,28mina了1003,42mina了1007,109mina了1011,之後沒有過任何一道題。比賽過程中時間分配有問題,一直在1005上面鑽牛角尖,題沒搞明白也沒做出來,浪費了很多時間。題意 給定長度為n的01串...

2019CCPC網路選拔賽簽到題題解

因為實力不濟,沒能通過網路賽拿到晉級的名額,心情沉重,故作此文記錄本次網路賽的點滴收穫。其中包含1001 1006 shuffle card 1007 windows of ccpc 1008 fishing master的題解。題目傳送門 題目分析 要找到使 ax orc a xor c axor...