目錄a題
b題 c題
小q挺喜歡擼串的,沒錯,字串!
你給小q送上了n個字串
對於乙個字串s,如果在小q擼掉(刪除)任意個字元之後,"nowcoder"是其子串,則這個字串s是可擼的。小q最近切題切到手軟,想擼串散散心。如果你給他呈現的字串是可擼的,他會很開心,否則他會很桑心。
輸入描述:
乙個整數n,表示字串的數量
接下來每行乙個字串sisi,表示小q看到的第i個字串
輸出描述:
輸出有n行,如果小q開心他會說qak,否則他會說qie
這題目很簡單,只要定義乙個j,相等則j++ 這樣乙個乙個往後檢索,如果最後j等於nowcoder的長度 則輸出qak
我定義了乙個字串陣列,結果長度m定義到10000000,太大了 然後就wa了 出結果後改到100000 就過了
#includeusing namespace std;
const int m = 100000;
string s[m];
int n;
int main()
for(int k = 0; k題目描述:
如果乙個數x滿足的|x|二進位制中1的個數》0的個數我們認為他是乙個好的數。乙個好的數的價值是1,而乙個不好的數的價值是-1
比如|2|=|−2|=2(10)=10(2),|10|=|−10|=10(10)=1010(2)|2|=|−2|=2(10)=10(2),|10|=|−10|=10(10)=1010(2)
小l想知道乙個序列anan的價值是多少
輸入描述:
第一行有乙個整數n,表示序列anan的長度
第二行有n個整數,第i個整數aiai表示序列中第i個數是多少
輸出描述:
輸出僅一行,表示這個序列的價值是多少
這道題需要對二進位制有所了解,我一看到二進位制,就想到了bitset,但是我忽略了乙個很重要的因素,那就是有的數可能是負數,應該用abs變成絕對值再進行運算 還有一點就是數值範圍比較大 用int是不能全部通過的
以下是用bitset的ac**:
#include#include#includeusing namespace std;
const int m = 10000000;
long long n;
long long a[m];
long long ans = 0;
long long solve(long long m)
int main()
std::bitset<32> bit;
for(long long i = 0; ib)
ans++;
else
ans--;
}cout《以下是不用bitset的ac**:
乙個數除以2 則二進位制就是向前移動一位 二進位制末尾是0的話 則這個數十進位制是偶數 若是1的話 這個數十進位制就是奇數
則可通過這個不用bitset寫出 而且感覺更簡單
#include#includeusing namespace std;
const int m = 100000+9;
long long n;
long long a[m];
int main()
if(a1 > a0)
ans++;
else
ans--;
}cout《題目描述:自從上次小w被奶牛踹了之後,就一直對此耿耿於懷。
於是"cow"成為了小w的禁忌,而長得和"cow"很像的"owc"…凡是同時含有"c","w","o"的都進入了他的禁忌名單。
小g想給他送一幅幅長為n個字元的長詩,但是又怕觸犯他的禁忌。所以他決定要是詩**現了他的禁忌就寧可不送,可是...他一寫起詩來就忘了一切。小g想知道他有多少種的詩可能不觸犯他的禁忌
注:小g只會用小寫字母寫詩
輸入描述:一行乙個整數n表示詩的長度
輸出描述:一行乙個整數表示小g有多少種可能的詩不觸犯小w的禁忌,由於可能數也許過大,請對109+7取膜後輸出
這道題我所知道的有兩種做法,其中一種很容易看出來,就是用dp解,dp[i][j]代表長度為i的詩裡包含j種禁忌字母,我們可以算出n種長度j為0, 1, 2的dp大小 然後相加
dpac:
#includeusing namespace std;
const int m = 100000+9;
const long long mod = 1e9+7;
long long dp[m][3];
int main()
long long ans = (dp[n][0] + dp[n][1] + dp[n][2]) % mod;
cout《還有一種就是用容斥演算法和快速冪解出,c(3,2)*pow(25,n)%mod - c(3,1)*pow(24,n)%mod + c(3,0)*pow(23, n)%mod
容斥ac:
#includeusing namespace std;
const int m = 100000+6;
const long long mod = 1e9+7;
typedef long long ll;
ll quickpow(ll a, ll b, ll c)
a = a * a % c;
b>>=1;
} return ans;
}int main(){
int n;
cin>>n;
ll ans;
if(n < 3) ans = quickpow(26, n, mod);
ans = (3*quickpow(25, n, mod) - 3*quickpow(24, n, mod) + quickpow(23, n, mod)+3*mod)% mod;
cout<
牛客OI周賽14 普及組
菜的真實,普及都 ak 不掉.score 100 100 100 0 300 rank 16 看來 pj t1 考字串讀入成鐵上釘釘了?考慮開桶 a 記錄 ascii 為 i 的字元是否出現即可。includeusing namespace std typedef long long ll cons...
牛客OI周賽7 普及組
比賽鏈結 這題非常簡單,純模擬就可以過,不用解釋 如下 includeusing namespace std struct gg a 10005 int main cin m for int i 1 i m i cout 這題目看起來仍然簡單。但最開始我還以為要把所有區間全部列舉一遍。然後我打出暴力...
牛客OI周賽11 普及組 C Colorful
時間限制 c c 1秒,其他語言2秒 空間限制 c c 262144k,其他語言524288k 64bit io format lld 小a最近學習了最小生成樹的演算法,覺得非常神奇。他現在在研究乙個更加神奇的問題 給定nn個點mm條邊的無向圖,每條邊都有乙個顏色,請找到一棵生成樹,滿足顏色的種類盡...