CF1924A
A. Did We Get Everything Covered?
思路首先我们要考虑什么样的子串是最难出现的,贪心的想法是:我们总希望剩余的字母数尽量少,也就是每个字符更靠近字符串的末尾,这样可以使得剩余可供选择的字符数量最少,这样就容易出现长度不足n的字符串(显然贪心成立)。所以我们要考虑的是这样的选取被什么所限制,换句话说,什么时候我们必须选取下一个字母?很明显,当k个字母全部出现了之后我们必须进行选择,否则我们就可以选择k个字母中不存在的那一个从而使得答案为“NO”,至于选择,我们每次选择k个字母中最晚出现的一个构造答案。最后进行验证和补全很简单
时间复杂度 O(s.size())即为O(N)
Solution12345678910111213141516171819202122232425262728293031323334353637383940414243444546#include <bits/stdc++.h>using namespace std;#define fi first#define se secondusing ll = long long; ...
LEETCODE3164
3164. 优质数对的总数 II
其实和3162思路是一样的,只是3162的数据范围可以进行暴力而3164不可以
思路将nums1[i]/(nums2[j] * k)所得的结果称为d,枚举d直到d * nums2[j] * k > nums1[i]
时间复杂度:O(n+m+k/v * logm)
Solutions12345678910111213141516171819202122232425using ll = long long;class Solution {public: long long numberOfPairs(vector<int>& nums1, vector<int>& nums2, int k) { unordered_map<int, int> cnt, cnt2; int mx = 0; for (const auto& i : nums1) { cnt[i]++; ...
LEETCODE3162
3162. 优质数对的总数 I
思路将nums1[i]/(nums2[j] * k)所得的结果称为d,枚举d直到d * nums2[j] * k > nums1[i]
时间复杂度:O(n+m+k/v * logm)
Solutions12345678910111213141516171819202122232425using ll = long long;class Solution {public: long long numberOfPairs(vector<int>& nums1, vector<int>& nums2, int k) { unordered_map<int, int> cnt, cnt2; int mx = 0; for (const auto& i : nums1) { cnt[i]++; mx = max(mx, i); } ...
cf_936_div2
这场感觉很对电波,前三题切的很快,d卡了很久,e是完全不懂数学的
蓝名留念
A查一下中位数往后且和中位数相等的数
12345678910111213141516171819202122232425262728293031323334353637#include<bits/stdc++.h>using namespace std;using ll=long long;int read(){ int a=0;int f=0;char p=getchar(); while(!isdigit(p)){f|=p=='-';p=getchar();} while(isdigit(p)){a=(a<<3)+(a<<1)+(p^48);p=getchar();} return f?-a:a;}const int N=1e6+5;int n;int a[N]; void huangyu(){ n=read(); int ans=0; for(int i=1 ...
abc343
A12345678910111213141516171819202122232425262728293031323334353637383940#include<bits/stdc++.h>using i64=long long;#define int long longusing namespace std;#define rep(i,a,n) for(i64 i=(a);i<=(n);++i)#define per(i,a,n) for(i64 i=(n);i>=(a);--i)#define mst(a,x) memset(a,x,sizeof(a))using pii = pair<int, int>;using pll = pair<i64, i64>;#define CY cout << "YES\n"#define CN cout << "NO\n"#define CA cout<< ans <<'\n'#define ...
cf931_div2
rk2100,看着自己从800一直掉到2000,从紫名表现分到蓝名(不会交互题TxT
Ahttps://codeforces.com/contest/1934/problem/A
很明显取最小,次小和最大,次大
12345678910111213141516171819202122232425262728293031323334353637383940#include<bits/stdc++.h>using i64=long long;#define int long longusing namespace std;#define rep(i,a,n) for(i64 i=(a);i<=(n);++i)#define per(i,a,n) for(i64 i=(n);i>=(a);--i)#define mst(a,x) memset(a,x,sizeof(a))using pii = pair<int, int>;using pll = pair<i64, i64>;#define CY cout << "YES ...
codeforces-913-div3
https://codeforces.com/contest/1907A题是一个很简单的模拟,就不说了
B题赛后看有群u们说拿栈模拟比赛时我想到的是从后到前遍历字符串,维护两个cnt1,cnt2.分别代表B,b出现的次数,出现一次对应cnt++,遍历每一个字符如果对应cnt不为零,这一位就不加入答案,然后cnt–。
123456789101112131415161718192021222324252627282930313233#include<bits/stdc++.h>using namespace std;using ll=long long;void solve(){ string s; cin>>s; reverse(s.begin(),s.end()); int cnt1=0; int cnt2=0; int len=s.size(); string ans=""; for(int i=0;i<len;i++){ if(s[i]=='b'){cnt1++;continue; ...
cfedu161
A
找到一个可能的就是YES,否则NO
1234567891011121314151617181920212223242526#include<bits/stdc++.h>using i64=long long;#define rep(i,a,n) for(i64 i=(a);i<=(n);i++)#define per(i,a,n) for(i64 i=(n);i>=(a);i--)#define mst(a,x) memset(a,x,sizeof(a))const int INF=0x3f3f3f3f,N=2e5+10;using namespace std;void solve(){ int n;cin>>n; string s,t,x;cin>>s>>t>>x; bool fg=1; for(int i=0;i<n;i++) { if(x[i]!=s[i]&&x[i]!=t[i])fg=0; } if(!fg)cout<<"YES ...
abc340
4题 (E题一开始初始化成负无穷了,急急急急急急急急急急急急急急急急急急
Ahttps://atcoder.jp/contests/abc342/tasks/abc342_a
模拟
1234567891011121314151617181920212223242526272829303132333435363738#include<bits/stdc++.h>using i64=long long;#define rep(i,a,n) for(i64 i=(a);i<=(n);i++)#define per(i,a,n) for(i64 i=(n);i>=(a);i--)#define mst(a,x) memset(a,x,sizeof(a))#define int long longconst int INF=0x3f3f3f3f,N=2e5+10;using namespace std;void solve(){ string s;cin>>s; vector<int>v(26); for(int i=0;i<s. ...
nowcoder_34
5题半—-rk167
最接近cpgg的一次,可惜f少出了半道题,时间不够了
Ahttps://ac.nowcoder.com/acm/contest/75766/A
分类讨论字符相同还是不相同
1234567891011121314151617181920212223242526272829#include<bits/stdc++.h>using i64=long long;#define rep(i,a,n) for(i64 i=(a);i<=(n);i++)#define per(i,a,n) for(i64 i=(n);i>=(a);i--)#define mst(a,x) memset(a,x,sizeof(a))const int INF=0x3f3f3f3f,N=2e5+10;using namespace std;void solve(){ char a,b;cin>>a>>b; if(a==b){ cout<<2<<'\n'; ...