1:4410. 吃鸡蛋
题目


代码实现
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
int main()
{
int n,m;
cin>> n>> m;
int day=0;
while(n)
{
day++;
n--;
if(day % m==0)
n++;
}
cout << day <<endl;
return 0;
}
2:4411. 三仙归洞
题目


代码实现
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
long n;
int x,a[3]={0,1,2};
int main()
{
cin >> n>>x;
n%=6;
//cout << n <<endl;
for(int i=0;i<n;i++)
{
if(i%2==0)swap(a[0],a[1]);
else swap(a[1],a[2]);
}
cout << a[x];
return 0;
}
3:构造数组
题目


y总yyds
代码实现
#include <iostream>
#include <cstring>
#include <algorithm>
#include <unordered_map>
#define x first
#define y second
using namespace std;
typedef pair<int, int> PII;
const int N = 200010, MOD = 998244353;
int n;
PII q[N];
int main()
{
scanf("%d", &n);
unordered_map<int, int> L(300000), R(300000);
for (int i = 1; i <= n; i ++ )
{
int a;
scanf("%d", &a);
R[a] = i;
if (!L.count(a)) L[a] = i;
}
int m = 0;
for (auto& [k, v]: L) q[m ++ ] = {L[k], R[k]};
sort(q, q + m);
int cnt = 0, st = -1, ed = -1;
for (int i = 0; i < m; i ++ )
if (q[i].x <= ed) ed = max(ed, q[i].y);
else
{
cnt ++ ;
st = q[i].x, ed = q[i].y;
}
int res = 1;
for (int i = 0; i < cnt - 1; i ++ )
res = res * 2 % MOD;
printf("%d\n", res);
return 0;}

被折叠的 条评论
为什么被折叠?



