2013 Multi-University Training Conteest 10
1001 Answers
超簡単な問題ですが、Ciは2より多くないという意味が分かりませんでした.Ciの中には1があるだけで、MiはあまりSBではなくマイナスであればいいのです.もし1がないなら、奇偶を判定すればいいです.
来てみたらこの問題です.スピリットと言ってK神は彼に任せました.結局最後まで出てきませんでした.、ソロを見て血を吐くのです.一つのスタックができたら、必ずそうしますか?
ゲームは、みんなが制限を持って取りますので、si+min(max(-sj、A+B-s 1-m(j)+1:j>i).これを知ればいいです.
1本の公式問題フェマ小定理を使って解決します.難点はn=10^100000です.文字列入力処理で前処理を追加する必要があります.
楽しそうに聞いています.噴き出してはいけません.
超簡単な問題ですが、Ciは2より多くないという意味が分かりませんでした.Ciの中には1があるだけで、MiはあまりSBではなくマイナスであればいいのです.もし1がないなら、奇偶を判定すればいいです.
#include
#include
#include
#include
#include
#include
#include
#include
#define mem(a,b) memset(a,b,sizeof(a))
#define FOR(a,b,i) for(i=a;i<=b;++i)
#define For(a,b,i) for(i=a;i'9');
ret=c-'0';
while((c=getchar())>='0'&&c<='9')
{
ret=ret*10+(c-'0');
}
}
inline void OT(int a)
{
if(a>=10)
{
OT(a/10);
}
putchar(a%10+'0');
}
int t[100001],c[100001];
int main()
{
int n,q,m,i;
bool flag;
while(scanf("%d%d",&n,&q)!=EOF)
{
flag=false;
For(0,n,i)
{
RD(t[i]);
}
For(0,n,i)
{
RD(c[i]);
if(c[i]==1)
{
flag=true;
}
}
while(q--)
{
scanf("%d",&m);
if(m<=0)
{
printf("NO
");
}
else if(flag==true)
{
printf("YES
");
}
else if(m%2==1)
{
printf("NO
");
}
else if(m%2==0)
{
printf("YES
");
}
}
}
return 0;
}
1004 エディター来てみたらこの問題です.スピリットと言ってK神は彼に任せました.結局最後まで出てきませんでした.、ソロを見て血を吐くのです.一つのスタックができたら、必ずそうしますか?
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define mem(a,b) memset(a,b,sizeof(a))
#define FOR(a,b,i) for(i=a;i<=b;++i)
#define For(a,b,i) for(i=a;i'9');
ret=c-'0';
while((c=getchar())>='0'&&c<='9')
{
ret=ret*10+(c-'0');
}
}
inline void OT(int a)
{
if(a>=10)
{
OT(a/10);
}
putchar(a%10+'0');
}
stack q1,q2;
int a[1000001],sum;
void init()// ,
{
while(!q1.empty())
{
q1.pop();
}
while(!q2.empty())
{
q2.pop();
}
}
void Add(int k)//
{
q1.push(k);
sum+=k;
int m=q1.size();
a[m]=max(a[m-1],sum);
}
bool Delete(int &k)//
{
if(q1.empty())
{
return false;
}
k=q1.top();
q1.pop();
sum-=k;
return true;
}
int main()
{
int n,i,j,k;
char str[2];
a[0]=-100000000000;
while(scanf("%d",&n)!=EOF)
{
init();
sum=0;
while(n--)
{
scanf("%s",str);
if(str[0]=='I')
{
scanf("%d",&k);
Add(k);
}
else if(str[0]=='D')
{
Delete(k);
}
else if(str[0]=='L')
{
if(Delete(k))
{
q2.push(k);
}
}
else if(str[0]=='R')//
{
if(q2.empty())
{
continue;
}
k=q2.top();
q2.pop();
Add(k);
}
else if(str[0]=='Q')//
{
scanf("%d",&k);
printf("%d
",a[k]);
}
}
}
return 0;
}
1006 ゲームゲームは、みんなが制限を持って取りますので、si+min(max(-sj、A+B-s 1-m(j)+1:j>i).これを知ればいいです.
#include
#include
#include
#include
#include
#include
#include
#include
#define mem(a,b) memset(a,b,sizeof(a))
#define FOR(a,b,i) for(i=a;i<=b;++i)
#define For(a,b,i) for(i=a;i'9');
ret=c-'0';
while((c=getchar())>='0'&&c<='9')
{
ret=ret*10+(c-'0');
}
}
inline void OT(int a)
{
if(a>=10)
{
OT(a/10);
}
putchar(a%10+'0');
}
int c[1000001];
long long s[1000001];
int main()
{
int n,a,b,i;
long long m,si,zero=0;
while(scanf("%d%d%d",&n,&a,&b)!=EOF)
{
for(i=0; i=0; i--)
{
s[i]=s[i+1]+c[i];
}
m=c[n-1];
si=min(zero,max(-s[n-1],-s[0]+a+b-m+1));
for(i=n-2; i>=0; i--)
{
m=s[i]+si;
si=min(si,max(-s[i],-s[0]+a+b-m+1));
}
if(a>=m)
{
printf("ALICE
");
}
else
{
printf("BOB
");
}
}
return 0;
}
1009 Sum1本の公式問題フェマ小定理を使って解決します.難点はn=10^100000です.文字列入力処理で前処理を追加する必要があります.
#include
#include
#include
#include
#include
#include
#include
#include
#define mem(a,b) memset(a,b,sizeof(a))
#define FOR(a,b,i) for(i=a;i<=b;++i)
#define For(a,b,i) for(i=a;i'9');
ret=c-'0';
while((c=getchar())>='0'&&c<='9')
{
ret=ret*10+(c-'0');
}
}
inline void OT(int a)
{
if(a>=10)
{
OT(a/10);
}
putchar(a%10+'0');
}
char str[100001];
long long tmp[100001];
__int64 pw(__int64 x,__int64 y)//
{
__int64 res=1;
x=x%N;
while(y>0)
{
if(y%2==1)
{
res=(res*x)%N;
}
x=(x*x)%N;
y/=2;
}
return res%N;
}
void f()
{
int i;
tmp[0]=2;
for(i=1;i<100001;i++)
{
tmp[i]=pw(tmp[i-1],10);
}
}
void g(int l)
{
int i=l-1;
while(i>=0&&str[i]=='0')
{
str[i]='9';
i--;
}
str[i]-=1;
}
int main()
{
f();
int i,l;
__int64 sum;
while(scanf("%s",str)!=EOF)
{
l=strlen(str);
g(l);
sum=1;
for(i=l-1;i>=0;i--)
{
sum=(sum*pw(tmp[l-i-1],str[i]-'0'))%N;//
}
printf("%I64d
",sum);
}
return 0;
}
これで10校以上が全部終わりました.先日用事があったため、最後のこの問題解決報告を直ちに出しませんでした.本シリーズの最上位は9月に終了します.楽しそうに聞いています.噴き出してはいけません.