Codeforces Global Round 7 문제 해결(A-D2)
39861 단어 codeforces 경기codeforces
A B a d U g l y N u m b e r s\mathrm{A\Bad\Ugly\Numbers} A Bad Ugly Numbers
#include
using namespace std;
inline int read()
{
int sum=0,ff=1; char ch=getchar();
while(!isdigit(ch))
{
if(ch=='-') ff=-1;
ch=getchar();
}
while(isdigit(ch))
sum=sum*10+(ch^48),ch=getchar();
return sum*ff;
}
int T,n;
int main()
{
T=read();
for (;T--;)
{
n=read();
if(n<=1)
{
printf("-1
");
goto rp;
}
putchar('2');
for ( int j=2;j<=n;j++ ) putchar('3');
printf("
");
rp:;
}
}
B M a x i m u m s\mathrm{B\Maximums} B Maximums
#include
#define int long long
using namespace std;
inline int read()
{
int sum=0,ff=1; char ch=getchar();
while(!isdigit(ch))
{
if(ch=='-') ff=-1;
ch=getchar();
}
while(isdigit(ch))
sum=sum*10+(ch^48),ch=getchar();
return sum*ff;
}
const int N=1e6+5;
int b[N];
signed main()
{
int n,mx=0;
n=read();
for ( int i=1;i<=n;i++ ) b[i]=read();
for ( int i=1;i<=n;i++ )
{
printf("%lld ",mx+b[i]);
mx=max(mx,b[i]+mx);
}
return 0;
}
C P e r m u t a t i o n P a r t i t i o n s\mathrm{C\Permutation\Partitions} C Permutation Partitions
#include
#define int long long
#define pb push_back
using namespace std;
inline int read()
{
int sum=0,ff=1; char ch=getchar();
while(!isdigit(ch))
{
if(ch=='-') ff=-1;
ch=getchar();
}
while(isdigit(ch))
sum=sum*10+(ch^48),ch=getchar();
return sum*ff;
}
int n,m,ans,sum;
const int mo=998244353;
signed main()
{
n=read();
m=read();
ans=1ll;
int lp=0;
for ( int i=1;i<=n;i++ )
{
int x=read();
if(x>=n-m+1)
{
sum+=x;
if(lp)
ans=ans*(i-lp)%mo;
lp=i;
}
}
printf("%lld %lld
",sum,ans);
return 0;
}
D 1 , D 2 P r e f i x − S u f f i x P a l i n d r o m e ( E a s y + H a r d v e r s i o n )\mathrm{D1,D2\Prefix-Suffix Palindrome (Easy+Hard version)} D1,D2 Prefix−SuffixPalindrome(Easy+Hardversion)
#include
#define pb push_back
using namespace std;
inline int read()
{
int sum=0,ff=1; char ch=getchar();
while(!isdigit(ch))
{
if(ch=='-') ff=-1;
ch=getchar();
}
while(isdigit(ch))
sum=sum*10+(ch^48),ch=getchar();
return sum*ff;
}
const int N=3e6+5;
int n,Q,m,ans,hw[N];
char s[N],t[N],c[N],b[N];
inline int get(char *s,int n)
{
string cwy="##";
for ( int i=1;i<=n;i++ ) cwy+=s[i],cwy+="#";
int mx=0,mid=0,ans=1;
for ( int i=1;i<cwy.length();i++ ) hw[i]=0;
for ( int i=1;i<cwy.length();i++ )
{
if(i<mx) hw[i]=min(hw[mid*2-i],mx-i);
else hw[i]=1;
for (;cwy[i+hw[i]]==cwy[i-hw[i]]&&i+hw[i]<cwy.length();hw[i]++);
if(i==hw[i]) ans=max(ans,hw[i]);
if(i+hw[i]>mx) mx=i+hw[i],mid=i;
}
return ans-1;
}
inline void solve()
{
scanf("%s",s+1);
n=strlen(s+1);
int P=1;
while(s[P]==s[n-P+1]&&P<=n) ++P;
if(P==n+1)
{
for ( int i=1;i<=n;i++ ) putchar(s[i]);
printf("
");
return;
}
m=0;
for ( int i=P;i<=n-P+1;i++ ) c[++m]=s[i];
int l=get(c,m);
reverse(c+1,c+m+1);
int r=get(c,m);
reverse(c+1,c+m+1);
if(l<r) reverse(c+1,c+m+1),swap(l,r);
for ( int i=1;i<P;i++ ) putchar(s[i]);
for ( int i=1;i<=l;i++ ) putchar(c[i]);
for ( int i=P-1;i;i-- ) putchar(s[i]);
puts("");
}
int main()
{
Q=read();
for (;Q--;) solve();
return 0;
}
E-G\mathrm {E-G} E-G의 구덩이를 먼저 파고 있다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Codeforces Global Round 7 문제 해결(A-D2)C o d e f o r c e s G l o b a l R o u n d 7 (A - D 2)\mathrm {Codeforces\Global\Round\7 (A-D2)} Codeforces Global Round ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.