Codeforces Round 884 (Div. 1 + Div. 2)A~D

news/2024/11/17 23:33:35/

A - Subtraction Game

题意:两个人轮流在n个石头中拿石头,只能拿a个或b个,不能拿则输,问让第二个人必胜的n

思路:直接输出a+b,不管第一个人那什么,都可以吧剩下的拿掉

#include <bits/stdc++.h>
using namespace std;int main() {int t,a,b;scanf("%d",&t);while (t--) {scanf("%d %d",&a,&b);printf("%d\n",a+b);}return 0;
}

B - Permutations & Primes

题意:给出一个数n,让你构造一个1~n的排列,让这个排列中有最多的mex(a [ l ]~a [ r ])为素数的情况,(mex就是不在我这个范围内的最小正整数),首先我们想如果一个子序列中没有1的话,那么它对答案一定没有贡献,所以要让1对答案贡献最大,让1在中间时被涵盖的次数最多

然后我们从1这个位置开始像,当子序列长度为n-1~1时的情况,n的时候1对其无影响,n-1时,我们把2,3分别放在两端一定满足,而其余长度也都是最多情况,当2,3放在两端时可以最大减少mex(l,r)>=2当但不是素数的情况(这个子序列一定要包含着1,

还是举个例子说好理解吧,a[ ]=(2,4,1,5,3)

长度为 n - 1 = 4 时:可以为2 4 1 5 ,4 1 5 3

长度为 n - 2 = 3 时:可以为2 4 1 ,4 1 5,1 5 3

长度为 n - 3 = 2 时:只有,4 1,1 5

....

#include <bits/stdc++.h>
using namespace std;
#define pi 3.1415926
#define X first
#define Y second
#define Ysanqian ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
#define endl "\n"
#define int long long
#define ULL unsigned long long
#define pb push_back
typedef pair<int, int> PII;
int dx[4]={-1,1,0,0},dy[4]={0,0,-1,1};
const int N = 1e6 + 100, M = 1010, inf = 0x3f3f3f3f, mod = 1e9 + 7,P=133331;
int n;
int a[N];
void solve()
{  cin>>n;if(n==1)cout<<1<<endl;else if(n==2)cout<<1<<' '<<2<<endl;else{for(int i=1;i<=n;i++)a[i]=0;a[(n+1)/2]=1;a[1]=2;a[n]=3;int num=4;for(int i=1;i<=n;i++){if(a[i]!=0)cout<<a[i]<<' ';else {cout<<num++<<' ';}}cout<<endl;}
} 
signed main()
{Ysanqian;int T;//T=1;cin >> T;while (T--)solve();return 0;
}

C - Particles

题意:给定一个序列,可以选一个数去掉,让这个数两边的数融合,问最后的那个数最大是多少

思路:我们可以发现只有两个数间隔为奇数时才可以融合,例如3 1 2 4 5,我们可以让3 2 5融合

也可以只让3 5融合,所以答案就是max(sum : max偶数下标( a[ i ] , 0 ),sum : max奇数下标(a[ i ],0)),当然有一种特殊情况就是全是负数,此时输出最大负数即可

#include <bits/stdc++.h>
using namespace std;
#define pi 3.1415926
#define X first
#define Y second
#define Ysanqian ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
#define endl "\n"
#define int long long
#define ULL unsigned long long
#define pb push_back
typedef pair<int, int> PII;
const int N = 1e6 + 100, M = 1010, inf = 0x3f3f3f3f, mod = 1e9 + 7,P=133331;
int max(int a,int b)
{if(a>b)return a;return b;
}
int min(int a,int b)
{if(a>b)return b;return a;
}
int n;
int a[N];
void solve()
{cin>>n;int maxx=-1e9;for(int i=1;i<=n;i++){cin>>a[i];maxx=max(maxx,a[i]);}int ans1=0,ans2=0;for(int i=1;i<=n;i++){if(i&1)ans1+=max(0,a[i]);else ans2+=max(0,a[i]);}if(maxx<0)cout<<maxx<<endl;elsecout<<max(ans1,ans2)<<endl;
} 
signed main()
{Ysanqian;int T;//T=1;cin >> T;while (T--)solve();return 0;
}

​​​​​​D - Row Majort

题意:让你找一个总长为n的字符串,要求不管这个序列变成任何r*c的矩阵,都不会有相邻的两个字符相等。

思路:r,c一定时n的因子,我们现想如何让行元素不相等,我们想到构建一个递增(有规律就行)的循环串就可以避免这种情况,在想如和避免列相邻元素不同,其实只要循环节不等n的约数就一定不会相同

例如:n=4,m(循环节)=2;n=4,m=3;

abab ab a        abca ab aab b             ca ba                cb                a
#include <bits/stdc++.h>
using namespace std;
#define pi 3.1415926
#define X first
#define Y second
#define Ysanqian ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
#define endl "\n"
#define int long long
#define ULL unsigned long long
#define pb push_back
typedef pair<int, int> PII;
const int N = 1e6 + 100, M = 1010, inf = 0x3f3f3f3f, mod = 1e9 + 7,P=133331;
#define max(a,b)  (((a)>(b)) ? (a):(b))
#define min(a,b)  (((a)<(b)) ? (a):(b))
int n,t;
char s[1000001];
void solve()
{char s[1000001];cin>>n;int c = 1;while ((n % c) == 0)c++;for (int i = 0; i < n; i++)s[i] = 'a'+(i % c);cout<<s<<endl;
} 
signed main()
{Ysanqian;int T;//T=1;cin >> T;while (T--)solve();return 0;
}


http://www.ppmy.cn/news/850479.html

相关文章

Windows语言栏不见了,解决办法。任务栏的语言栏没了、不显示了。语言栏异常导致不能输入中文。默认中文输入法设置。

用着用着&#xff0c;发现输入不了中文了&#xff0c;然后看任务栏里的语言栏没有了。 这是正常状态。我设置了语言栏停靠任务栏的样子。 一般是缓存问题&#xff0c;我们重新设置一下就好了。 在控制面板里的区域和语言&#xff0c;找到键盘设置。 这样设置就好了。 注&…

如何解决电脑的任务栏处语言栏不见了

如果你用的还是Windows 98、Windows Me的系统&#xff0c;有时输入法图标不见了&#xff0c;一般可以在输入法设置中找回来。依次单击“开始”→“设置”→“控制面板”&#xff0c;打开控制面板&#xff0c;在控制面板中双击“输入法”图标&#xff0c;在弹出的对话框下部&…

计算机桌面为什么没有语言栏了,电脑语言栏不见了的解决方法

出现输入法不见了&#xff0c;输入法图标不见了的现象。必须进行修复才能解决这个问题。下面学习啦小编就为大家介绍一下具体的修复方法吧&#xff0c;欢迎大家参考和学习。 语言栏丢失问题可能是你自己误删除&#xff0c;也可能是广告木马为了达到挟持用户访问其推广的恶意网站…

Windows10恢复任务栏中的“中/英”切换图标

问题描述 一时手残点到任务栏中中/英切换标志下的【显示语言栏】&#xff0c;然后我的中/英切换按钮就不见了&#xff0c;而且多出了一个丑的一批的语言栏。 点击语言栏右侧的最小化&#xff0c;这个语言栏倒是消失了&#xff0c;但是中/英切换标志还是没有显示&#xff0c;…

电脑语言栏消失看我怎么办

方法1 &#xff1a;在任务栏单击鼠标右键&#xff0c;弹出快捷菜单&#xff0c;把鼠标移动到“工具栏”上&#xff0c;会弹出子菜单&#xff0c;看看其中的“语言栏”有没有被选中&#xff0c;如果没有选中&#xff0c;单击选中“语言栏”&#xff0c;一般会显示输入法图标。 …

Windows XP 语言栏丢失

我用的是winXP 任务栏上的输入法图标不见了 我打开文字服务和输入语言对话框 但其中的语言栏按钮是灰色的 我又用了灰色按钮克星进去勾上了在桌面上显示语言栏但点确定后再次打开发现我的修改并没有保存 怎么办首先打开文字服务 1. 单击开始&#xff0c;单击 控制面板&#xff…

计算机语言恢复,win10系统找回消失不见语言栏的恢复方法

win10系统使用久了&#xff0c;好多网友反馈说关于对win10系统找回消失不见语言栏设置的方法&#xff0c;在使用win10系统的过程中经常不知道如何去对win10系统找回消失不见语言栏进行设置&#xff0c;有什么好的办法去设置win10系统找回消失不见语言栏呢&#xff1f;在这里小编…

计算机桌面为什么没有语言栏了,电脑语言栏不见了有哪些解决方法

电脑的普及&#xff0c;让我们享受到了足不出门就可以满足所有的需求&#xff0c;在我们的使用过程中&#xff0c;不免出现些小问题&#xff0c;比如电脑语言栏不见了&#xff0c;今天我们就来好好的了解下怎样解决吧&#xff01; 电脑语言栏不见了&#xff0c;解决方法一、打开…