标签:周赛 26 83vp int ll pos back 力扣 ++
50min AK,状态一般。
A
记录起点,遇到不同就更新。
B
按题意模拟。
C
直接 \(O(\sqrt n)\) 暴力。
class Solution {
public:
int consecutiveNumbersSum(int n) {
ll m = 2 * n + 1;
ll x = sqrt(m);
int res = 0;
for (int i = 1; i <= x; ++i) {
if (i & 1) {
if (n % i)
continue;
res++;
} else {
int mid = i / 2;
if (n % mid || (n / mid) % 2 == 0)
continue;
res++;
}
}
return res;
}
};
D
对每个字母分别求贡献,\(O(n)\)。
class Solution {
public:
int uniqueLetterString(string s) {
vector<int> pos[26];
for (int c = 0; c < 26; ++c) {
pos[c].push_back(-1);
}
for (int i = 0; i < s.length(); i++) {
int now = s[i] - 'A';
pos[now].push_back(i);
}
for (int c = 0; c < 26; ++c) {
pos[c].push_back(s.length());
}
ll ans = 0;
for (int c = 0; c < 26; ++c) {
if (pos[c].size() <= 2)
continue;
for (int i = 1; i < pos[c].size() - 1; i++) {
ans += 1LL * (pos[c][i] - pos[c][i - 1]) * (pos[c][i + 1] - pos[c][i]);
ans %= mod;
}
}
return ans % mod;
}
};
标签:周赛,26,83vp,int,ll,pos,back,力扣,++ 来源: https://www.cnblogs.com/theophania/p/wc83.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。