自适应网站模板,装修公司网站,展厅公司,网站建设开题报告这种大场全是神仙打架#xff0c;向我这种菜菜就是掉分www太难了 神仙打架#xff0c;百姓遭殃。
A - Omkar and Password
分析可以知道#xff0c;只要数组元素不是全部相等答案就是1#xff0c;如何数组元素全部相等答案就是n。
#define IO ios::sync_with_stdio(fals…这种大场全是神仙打架向我这种菜菜就是掉分www太难了 神仙打架百姓遭殃。
A - Omkar and Password
分析可以知道只要数组元素不是全部相等答案就是1如何数组元素全部相等答案就是n。
#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#pragma GCC optimize(2)
#includeiostream
#includealgorithm
using namespace std;
typedef long long ll;
ll a[N];
int n;
int main()
{IO;int T;cinT;while(T--){cinn;for(int i1;in;i) cina[i];bool ok1;for(int i2;in;i) if(a[i]!a[1]){ok0;break;}if(ok) coutnendl;else cout1endl;}return 0;
}B - Omkar and Infinity Clock
数学题稍微写一下就可以找到规律。
#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#pragma GCC optimize(2)
#includeiostream
#includealgorithm
using namespace std;
typedef long long ll;
const int N200010;
ll a[N];
ll n,k;
int main()
{IO;int T;cinT;while(T--){cinnk;ll maxa-2e9,mina2e9;for(int i1;in;i) {cina[i];maxamax(maxa,a[i]);minamin(mina,a[i]);}if(k1){for(int i1;in;i) coutmaxa-a[i] ;coutendl;}else{for(int i1;in;i) couta[i]-mina ;coutendl;}}return 0;
}C - Omkar and Waterslide
贪心洛谷原题 题目转化一下相当于添坑。 如果a[i-1]a[i]说明需要填完a[i-1]-a[i]然后转化为添第i-1个坑即f[i-1] 如果a[i-1]a[i]说明填i-1个坑的同时能过顺便填上第i个坑
#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#pragma GCC optimize(2)
#includeiostream
#includealgorithm
using namespace std;
typedef long long ll;
const int N200010;
ll a[N];
ll n;
ll f[N];
int main()
{IO;int T;cinT;while(T--){cinn;for(int i1;in;i) cina[i];for(int i1;in;i) f[i]f[i-1]max(a[i-1]-a[i],0ll);coutf[n]endl;}return 0;
}就做了三个题
D - Omkar and Bed Wars
参考答案正解%%%Orz 首先考虑不合法的情况 ①s[i-1]L并且s[i1]L但是s[i]L也就是你右边的人打你你左边的人没打你但是你却打你左边的人。 ②s[i-1]R并且s[i1]R但是s[i]R也就是你左边的人打你你右边的人没打你但是你却打你右边的人。 发现就这两种不符合规矩的情况即不能有3个连续相同的字符Orz我当时乱的一p这分析太妙了 因此统计连续相同字符的个数cnt然后变成不能有3个连续相同的字符。如果连续相同的字符数目是cnt那么要花费cnt/3的代价。 注意如果是一个环首先找一个点花费1代价破环最终花费即(cnt-1)/31
#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#pragma GCC optimize(2)
#includestring
#includeiostream
#includealgorithm
using namespace std;
typedef long long ll;
const int N200010;
ll a[N];
int n;
int main()
{IO;int T;cinT;while(T--){int n;cinn;string s;cins;int cnt0;while(s.size()s[0]s.back()){cnt;s.pop_back();}if(s.empty()){if(cnt2) cout0endl;else if(cnt3) cout1endl;else cout(cnt-1)/31endl;}else{int res0;s.push_back($);for(int i0;is.size()-1;i){cnt;if(s[i]!s[i1]){rescnt/3;cnt0;}}coutresendl;}}return 0;
}这题好像dp也能做可是我不会回头看看别的大佬咋写的再补一下吧 要加油哦~