A
空
B题
set暴力水过
#pragma GCC optimize("O3") #include<bits/stdc++.h> #define ll long long using namespace std; set<int>s; set<int>::iterator it; inline int read(){ int s=0,w=1; char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();} while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar(); return s*w; } int main() { int n,m,q,z; n=read(),m=read(); for(int i=1;i<=m;i++) { q=read(),z=read(); if(q==1) s.insert(z); else { it=s.lower_bound(z); if(it==s.end()||*it!=z) printf("%d ",z); else { int ans=*it; it++; while(it!=s.end()&&(*it)-1==ans) { ans=*it; it++; } if(it==s.end()&&ans==n) { puts("-1"); } else printf("%d ",ans+1); } } } return 0; }
C
签到题
#include<bits/stdc++.h> using namespace std; #define ll long long int main() { int n; scanf("%d",&n); if(n%2==0&&(n/2!=1)) puts("YES"); else puts("NO"); return 0; }
D题
kmp模板题
#include<iostream> #include<cstring> using namespace std; typedef struct { char data[100010]; int len; } sqstring; void getnextval(sqstring t,int nextval[]) { int j=0,k=-1; nextval[0] = -1; while (j<t.len) { if (k==-1 || t.data[j]==t.data[k]) { j++; k++; if (t.data[j]!=t.data[k]) nextval[j]=k; else nextval[j]=nextval[k]; } else k=nextval[k]; } } int KMPIndexl(sqstring s,sqstring t) { int nextval[100010],i=0,j=0; getnextval(t,nextval); while (i<s.len && j<t.len) { if (j==-1 || s.data[i]==t.data[j]) { i++; j++; } else j=nextval[j]; } if (j>=t.len) return(i-t.len); else return (-1); } int main() { sqstring n,m; int p=0; scanf("%s",n.data); n.len=strlen(n.data); scanf("%d",&p); for (int i=0;i<p;i++) { getchar(); scanf("%s",m.data); m.len=strlen(m.data); if (n.len>m.len) { if (KMPIndexl(n,m)!=-1) printf("my child! "); else printf("oh, child! "); } else if (n.len<m.len) { if (KMPIndexl(m,n)!=-1) printf("my teacher! "); else printf("senior! "); } else if (n.len==m.len) { if (strcmp(n.data,m.data)==0) printf("jntm! "); else printf("friend! "); } } }
E
空