mirror of
https://github.com/Kiritow/OJ-Problems-Source.git
synced 2024-03-22 13:11:29 +08:00
Powered By HC TECH : AutoACer Engine
This commit is contained in:
parent
02f21a718d
commit
5ccba6fd68
35
HDOJ/1200_autoAC.cpp
Normal file
35
HDOJ/1200_autoAC.cpp
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
#include<stdio.h>
|
||||||
|
#include<string.h>
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
char s[1000],a[100][100];
|
||||||
|
int i,j,k,l,m,n,t,f,g,len;
|
||||||
|
while(scanf("%d",&n)!=EOF&&n)
|
||||||
|
{ t=-1;
|
||||||
|
getchar();
|
||||||
|
gets(s);len=strlen(s);
|
||||||
|
for(i=0,j=-1;s[i]!='\0';i++)
|
||||||
|
{
|
||||||
|
if(i%n==0)
|
||||||
|
{ t++;j++;k=0;}
|
||||||
|
if(t%2==0)
|
||||||
|
{
|
||||||
|
a[j][k++]=s[i];
|
||||||
|
}
|
||||||
|
if(t%2==1)
|
||||||
|
{
|
||||||
|
f=i+n-1;
|
||||||
|
for(g=f;g>=i;g--)
|
||||||
|
a[j][k++]=s[g];
|
||||||
|
i=i+n-1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for(i=0;i<n;i++)
|
||||||
|
{
|
||||||
|
for(j=0;j<=t;j++)
|
||||||
|
printf("%c",a[j][i]);
|
||||||
|
}
|
||||||
|
printf("\n");
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
32
HDOJ/1201_autoAC.cpp
Normal file
32
HDOJ/1201_autoAC.cpp
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
#include <stdio.h>
|
||||||
|
int leap(int year)
|
||||||
|
{
|
||||||
|
if (year % 400 == 0 || (year % 100 != 0 && year % 4 == 0)) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int T;
|
||||||
|
scanf("%d", &T);
|
||||||
|
int year, month, day;
|
||||||
|
while (T--) {
|
||||||
|
scanf("%d-%d-%d", &year, &month, &day);
|
||||||
|
int sum = 365 * 18;
|
||||||
|
for (int i = 1; i < 18; i++) {
|
||||||
|
sum += leap(i + year);
|
||||||
|
}
|
||||||
|
if (month <= 2) {
|
||||||
|
sum += leap(year);
|
||||||
|
} else {
|
||||||
|
sum += leap(year + 18);
|
||||||
|
}
|
||||||
|
if (month == 2 && day == 29) {
|
||||||
|
printf("-1\n");
|
||||||
|
} else {
|
||||||
|
printf("%d\n", sum);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
41
HDOJ/1202_autoAC.cpp
Normal file
41
HDOJ/1202_autoAC.cpp
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
#include<iostream>
|
||||||
|
#include<iomanip>
|
||||||
|
int point(double );
|
||||||
|
using namespace std;
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int n;
|
||||||
|
while(cin>>n)
|
||||||
|
{
|
||||||
|
double sum=0,s,p,c=0;
|
||||||
|
while(n--)
|
||||||
|
{
|
||||||
|
cin>>s>>p;
|
||||||
|
if(p==-1)
|
||||||
|
continue;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sum+=s;
|
||||||
|
c+=s*point(p);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(c==0)
|
||||||
|
cout<<"-1\n";
|
||||||
|
else
|
||||||
|
cout<<setiosflags(ios::fixed)<<setprecision(2)<<c/sum<<endl;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
int point(double g)
|
||||||
|
{
|
||||||
|
if(g>=90)
|
||||||
|
return 4;
|
||||||
|
else if(g>=80)
|
||||||
|
return 3;
|
||||||
|
else if(g>=70)
|
||||||
|
return 2;
|
||||||
|
else if(g>=60)
|
||||||
|
return 1;
|
||||||
|
else
|
||||||
|
return 0;
|
||||||
|
}
|
29
HDOJ/1203_autoAC.cpp
Normal file
29
HDOJ/1203_autoAC.cpp
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
#include<iostream>
|
||||||
|
#include<cstdio>
|
||||||
|
#include<cstring>
|
||||||
|
#include<algorithm>
|
||||||
|
using namespace std;
|
||||||
|
int a[10002];
|
||||||
|
double b[10002];
|
||||||
|
double p[10002];
|
||||||
|
int n,m;
|
||||||
|
void dp()
|
||||||
|
{
|
||||||
|
memset(p,0,sizeof(p));
|
||||||
|
for(int i=1;i<=m;++i)
|
||||||
|
{
|
||||||
|
for(int j=n;j>=a[i];--j)
|
||||||
|
p[j]=max(p[j],1-(1-p[j-a[i]])*(1-b[i]));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
while(cin>>n>>m&&(m+n))
|
||||||
|
{
|
||||||
|
for(int i=1;i<=m;++i)
|
||||||
|
cin>>a[i]>>b[i];
|
||||||
|
dp();
|
||||||
|
printf("%.1f%%\n",p[n]*100);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
24
HDOJ/1204_autoAC.cpp
Normal file
24
HDOJ/1204_autoAC.cpp
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
#include <iostream>
|
||||||
|
#include <iomanip>
|
||||||
|
#include <cmath>
|
||||||
|
using namespace std;
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int N,M;
|
||||||
|
double p,q,rate,k;
|
||||||
|
while(cin>>N>>M>>p>>q)
|
||||||
|
{
|
||||||
|
if(N==0){cout<<"0.00"<<endl;continue;}
|
||||||
|
if(M==0){cout<<"1.00"<<endl;continue;}
|
||||||
|
if(p==0||q==1){cout<<"0.00"<<endl;continue;}
|
||||||
|
if(q==0||p==1){cout<<"1.00"<<endl;continue;}
|
||||||
|
if(p==q) rate=1.0*N/(M+N);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
k = q*(1-p)/(p*(1-q));
|
||||||
|
rate = (1.0-pow(k,N))/(1.0-pow(k,M+N));
|
||||||
|
}
|
||||||
|
cout<<fixed<<setprecision(2)<<rate<<endl;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
25
HDOJ/1205_autoAC.cpp
Normal file
25
HDOJ/1205_autoAC.cpp
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
#include <stdio.h>
|
||||||
|
#define x 1000000
|
||||||
|
#define max(a,b) a>b?a:b
|
||||||
|
int i,n,T,Max;
|
||||||
|
int a[x];
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
scanf("%d",&T);
|
||||||
|
while(T--)
|
||||||
|
{
|
||||||
|
__int64 sum=0;
|
||||||
|
scanf("%d",&n);
|
||||||
|
Max=0;
|
||||||
|
for(i=0;i<n;i++)
|
||||||
|
{
|
||||||
|
scanf("%d",&a[i]);
|
||||||
|
sum+=a[i];
|
||||||
|
Max=max(Max,a[i]);
|
||||||
|
}
|
||||||
|
sum=sum-Max+1;
|
||||||
|
if(sum>=Max) printf("Yes\n");
|
||||||
|
else printf("No\n");
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
77
HDOJ/1207_autoAC.cpp
Normal file
77
HDOJ/1207_autoAC.cpp
Normal file
|
@ -0,0 +1,77 @@
|
||||||
|
#include<iostream>
|
||||||
|
#include<cmath>
|
||||||
|
using namespace std;
|
||||||
|
int a[65];
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
a[1]=1;
|
||||||
|
a[2]=3;
|
||||||
|
a[3]=5;
|
||||||
|
a[4]=9;
|
||||||
|
a[5]=13;
|
||||||
|
a[6]=17;
|
||||||
|
a[7]=25;
|
||||||
|
a[8]=33;
|
||||||
|
a[9]=41;
|
||||||
|
a[10]=49;
|
||||||
|
a[11]=65;
|
||||||
|
a[12]=81;
|
||||||
|
a[13]=97;
|
||||||
|
a[14]=113;
|
||||||
|
a[15]=129;
|
||||||
|
a[16]=161;
|
||||||
|
a[17]=193;
|
||||||
|
a[18]=225;
|
||||||
|
a[19]=257;
|
||||||
|
a[20]=289;
|
||||||
|
a[21]=321;
|
||||||
|
a[22]=385;
|
||||||
|
a[23]=449;
|
||||||
|
a[24]=513;
|
||||||
|
a[25]=577;
|
||||||
|
a[26]=641;
|
||||||
|
a[27]=705;
|
||||||
|
a[28]=769;
|
||||||
|
a[29]=897;
|
||||||
|
a[30]=1025;
|
||||||
|
a[31]=1153;
|
||||||
|
a[32]=1281;
|
||||||
|
a[33]=1409;
|
||||||
|
a[34]=1537;
|
||||||
|
a[35]=1665;
|
||||||
|
a[36]=1793;
|
||||||
|
a[37]=2049;
|
||||||
|
a[38]=2305;
|
||||||
|
a[39]=2561;
|
||||||
|
a[40]=2817;
|
||||||
|
a[41]=3073;
|
||||||
|
a[42]=3329;
|
||||||
|
a[43]=3585;
|
||||||
|
a[44]=3841;
|
||||||
|
a[45]=4097;
|
||||||
|
a[46]=4609;
|
||||||
|
a[47]=5121;
|
||||||
|
a[48]=5633;
|
||||||
|
a[49]=6145;
|
||||||
|
a[50]=6657;
|
||||||
|
a[51]=7169;
|
||||||
|
a[52]=7681;
|
||||||
|
a[53]=8193;
|
||||||
|
a[54]=8705;
|
||||||
|
a[55]=9217;
|
||||||
|
a[56]=10241;
|
||||||
|
a[57]=11265;
|
||||||
|
a[58]=12289;
|
||||||
|
a[59]=13313;
|
||||||
|
a[60]=14337;
|
||||||
|
a[61]=15361;
|
||||||
|
a[62]=16385;
|
||||||
|
a[63]=17409;
|
||||||
|
a[64]=18433;
|
||||||
|
int n;
|
||||||
|
while(cin>>n)
|
||||||
|
{
|
||||||
|
cout<<a[n]<<endl;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
34
HDOJ/1208_autoAC.cpp
Normal file
34
HDOJ/1208_autoAC.cpp
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
#include<stdio.h>
|
||||||
|
#include<string.h>
|
||||||
|
int main ()
|
||||||
|
{
|
||||||
|
__int64 dp[50][50];
|
||||||
|
int map[50][50];
|
||||||
|
int i,j,n;
|
||||||
|
char c;
|
||||||
|
while(~scanf("%d",&n)&&n!=-1)
|
||||||
|
{
|
||||||
|
getchar();
|
||||||
|
for(i=1;i<=n;i++)
|
||||||
|
{
|
||||||
|
for(j=1;j<=n;j++)
|
||||||
|
{
|
||||||
|
scanf("%c",&c);
|
||||||
|
map[i][j]=c-48;
|
||||||
|
}
|
||||||
|
getchar();
|
||||||
|
}
|
||||||
|
memset(dp,0,sizeof(dp));
|
||||||
|
dp[1][1]=1;
|
||||||
|
for(i=1;i<=n;i++)
|
||||||
|
for(j=1;j<=n;j++)
|
||||||
|
{
|
||||||
|
if(!map[i][j])
|
||||||
|
continue;
|
||||||
|
dp[i+map[i][j]][j]+=dp[i][j];
|
||||||
|
dp[i][j+map[i][j]]+=dp[i][j];
|
||||||
|
}
|
||||||
|
printf("%I64d\n",dp[n][n]);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
47
HDOJ/1209_autoAC.cpp
Normal file
47
HDOJ/1209_autoAC.cpp
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
#include<iostream>
|
||||||
|
#include<cstdio>
|
||||||
|
#include<algorithm>
|
||||||
|
#include<cmath>
|
||||||
|
#include<cstring>
|
||||||
|
#include<set>
|
||||||
|
#include<map>
|
||||||
|
#include<string>
|
||||||
|
#include<cstdlib>
|
||||||
|
using namespace std;
|
||||||
|
struct node
|
||||||
|
{
|
||||||
|
int x,y;
|
||||||
|
double z;
|
||||||
|
};
|
||||||
|
node a[10];
|
||||||
|
bool cmp(node a,node b)
|
||||||
|
{
|
||||||
|
if(a.z==b.z)
|
||||||
|
{
|
||||||
|
if(a.x==b.x)return a.y<b.y;
|
||||||
|
return a.x<b.x;
|
||||||
|
}
|
||||||
|
return a.z<b.z;
|
||||||
|
}
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int c,d,n,i,j,k,t,x,y;
|
||||||
|
double z;
|
||||||
|
while(~scanf("%d",&n))
|
||||||
|
{
|
||||||
|
while(n--)
|
||||||
|
{
|
||||||
|
for(i=0;i<5;i++)
|
||||||
|
{
|
||||||
|
scanf("%d:%d",&x,&y);
|
||||||
|
a[i].y=y;a[i].x=x;
|
||||||
|
if(x>=12)x%=12;
|
||||||
|
z=fabs(1.0*x*30+1.0*y/2-1.0*6*y);
|
||||||
|
a[i].z=min(360-z,z);
|
||||||
|
}
|
||||||
|
sort(a,a+5,cmp);
|
||||||
|
printf("%02d:%02d\n",a[2].x,a[2].y);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
20
HDOJ/1210_autoAC.cpp
Normal file
20
HDOJ/1210_autoAC.cpp
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
#include<stdio.h>
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int m,x,ans;
|
||||||
|
while(~scanf("%d",&m))
|
||||||
|
{
|
||||||
|
x=1;
|
||||||
|
ans = 0;
|
||||||
|
do
|
||||||
|
{
|
||||||
|
if(x<=m)
|
||||||
|
x = 2*x;
|
||||||
|
else
|
||||||
|
x = 2*(x-m)-1;
|
||||||
|
ans++;
|
||||||
|
}
|
||||||
|
while(x!=1);
|
||||||
|
printf("%d\n",ans);
|
||||||
|
}
|
||||||
|
}
|
37
HDOJ/1211_autoAC.cpp
Normal file
37
HDOJ/1211_autoAC.cpp
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <math.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string>
|
||||||
|
#include <iostream>
|
||||||
|
#include <algorithm>
|
||||||
|
#include <vector>
|
||||||
|
using namespace std;
|
||||||
|
__int64 n;
|
||||||
|
__int64 power(int a,int d)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
__int64 res=1;
|
||||||
|
for(i=1;i<=d;i++)
|
||||||
|
res=(res*a)%n;
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int d,i,j,p,q,e,l,a;
|
||||||
|
while(~scanf("%d%d%d%d",&p,&q,&e,&l))
|
||||||
|
{
|
||||||
|
n=(p-1)*(q-1);
|
||||||
|
for(i=1;;i++)
|
||||||
|
if((i*e)%n==1)
|
||||||
|
break;
|
||||||
|
d=i;
|
||||||
|
n=p*q;
|
||||||
|
for(i=0;i<l;i++)
|
||||||
|
{
|
||||||
|
scanf("%d",&a);
|
||||||
|
printf("%c",(power(a,d)));
|
||||||
|
}
|
||||||
|
putchar(10);
|
||||||
|
}
|
||||||
|
}
|
18
HDOJ/1212_autoAC.cpp
Normal file
18
HDOJ/1212_autoAC.cpp
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
#include<stdio.h>
|
||||||
|
#include<string.h>
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int n,i,t;
|
||||||
|
char a[1010];
|
||||||
|
while(scanf("%s%d",&a,&n)!=EOF)
|
||||||
|
{
|
||||||
|
t=0;
|
||||||
|
for(i=0;i<strlen(a);i++)
|
||||||
|
{
|
||||||
|
t=t*10+a[i]-'0';
|
||||||
|
t%=n;
|
||||||
|
}
|
||||||
|
printf("%d\n",t);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
37
HDOJ/1213_autoAC.cpp
Normal file
37
HDOJ/1213_autoAC.cpp
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
#include<stdio.h>
|
||||||
|
#include<string.h>
|
||||||
|
int a[1003];
|
||||||
|
void ice(int x,int y)
|
||||||
|
{
|
||||||
|
a[x]=y;
|
||||||
|
}
|
||||||
|
int find(int x)
|
||||||
|
{
|
||||||
|
if(x!=a[x])
|
||||||
|
a[x]=find(a[x]);
|
||||||
|
return a[x];
|
||||||
|
}
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int t,n,m,i,j,x,y;
|
||||||
|
scanf("%d",&t);
|
||||||
|
while(t--)
|
||||||
|
{
|
||||||
|
scanf("%d%d",&n,&m);
|
||||||
|
j=0;
|
||||||
|
for(i=1;i<=n;i++)
|
||||||
|
a[i]=i;
|
||||||
|
for(i=1;i<=m;i++)
|
||||||
|
{
|
||||||
|
scanf("%d%d",&x,&y);
|
||||||
|
x=find(x);
|
||||||
|
y=find(y);
|
||||||
|
ice(x,y);
|
||||||
|
}
|
||||||
|
for(i=1;i<=n;i++)
|
||||||
|
if(a[i]==i)
|
||||||
|
j++;
|
||||||
|
printf("%d\n",j);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
12
HDOJ/1214_autoAC.cpp
Normal file
12
HDOJ/1214_autoAC.cpp
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
#include<stdio.h>
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int n,a;
|
||||||
|
while(~scanf("%d",&n))
|
||||||
|
{
|
||||||
|
a=n/2;
|
||||||
|
n-=a;
|
||||||
|
printf("%d\n",a*(a-1)/2+n*(n-1)/2);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
26
HDOJ/1215_autoAC.cpp
Normal file
26
HDOJ/1215_autoAC.cpp
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
#include<stdio.h>
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int n,i,a,j,sum,c;
|
||||||
|
while(scanf("%d",&n)!=EOF)
|
||||||
|
{
|
||||||
|
for(i=1;i<=n;i++)
|
||||||
|
{
|
||||||
|
sum=0;
|
||||||
|
scanf("%d",&a);
|
||||||
|
c=a;
|
||||||
|
for(j=2;j<c;j++)
|
||||||
|
if(a%j==0)
|
||||||
|
{
|
||||||
|
sum+=j;
|
||||||
|
if(j!=a/j)
|
||||||
|
{
|
||||||
|
sum+=a/j;
|
||||||
|
c=a/j;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sum++;
|
||||||
|
printf("%d\n",sum);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
33
HDOJ/1216_autoAC.cpp
Normal file
33
HDOJ/1216_autoAC.cpp
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
#include<stdio.h>
|
||||||
|
#include<string.h>
|
||||||
|
#define M 34000
|
||||||
|
int n,num[M],ss[3001],t=0;
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int i,j,k;
|
||||||
|
memset(num,0,sizeof(num));
|
||||||
|
for(i=2;i<M;i++)
|
||||||
|
{
|
||||||
|
if(!num[i])
|
||||||
|
{
|
||||||
|
ss[t++]=i;k=0;
|
||||||
|
for(j=i+1;j<M;j++)
|
||||||
|
if(!num[j])
|
||||||
|
{
|
||||||
|
k++;
|
||||||
|
if(k==i)
|
||||||
|
{
|
||||||
|
k=0;
|
||||||
|
num[j]=1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(t==3000)
|
||||||
|
{break;}
|
||||||
|
}
|
||||||
|
while(scanf("%d",&n),n!=0)
|
||||||
|
{
|
||||||
|
printf("%d\n",ss[n-1]);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
77
HDOJ/1217_autoAC.cpp
Normal file
77
HDOJ/1217_autoAC.cpp
Normal file
|
@ -0,0 +1,77 @@
|
||||||
|
#include<stdio.h>
|
||||||
|
#include<string.h>
|
||||||
|
#define max 100+10
|
||||||
|
double map[max][max];
|
||||||
|
int curr,t=1;
|
||||||
|
void floyd()
|
||||||
|
{
|
||||||
|
int k,i,j;
|
||||||
|
int exist=0;
|
||||||
|
for(k=1;k<=curr;k++)
|
||||||
|
{
|
||||||
|
for(i=1;i<=curr;i++)
|
||||||
|
{
|
||||||
|
for(j=1;j<=curr;j++)
|
||||||
|
{
|
||||||
|
if(map[i][j]<map[i][k]*map[k][j])
|
||||||
|
map[i][j]=map[i][k]*map[k][j];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for(i=1;i<=curr;i++)
|
||||||
|
{
|
||||||
|
if(map[i][i]>1)
|
||||||
|
{
|
||||||
|
exist=1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(exist)
|
||||||
|
printf("Case %d: Yes\n",t++);
|
||||||
|
else
|
||||||
|
printf("Case %d: No\n",t++);
|
||||||
|
}
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int m,i,j,x,y;
|
||||||
|
double rate;
|
||||||
|
char a[110],b[110],s[110][110];
|
||||||
|
while(scanf("%d",&curr)&&(curr!=0))
|
||||||
|
{
|
||||||
|
for(i=1;i<=curr;i++)
|
||||||
|
{
|
||||||
|
for(j=1;j<=curr;j++)
|
||||||
|
{
|
||||||
|
map[i][j]=0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for(i=1;i<=curr;i++)
|
||||||
|
{
|
||||||
|
scanf("%s",s[i]);
|
||||||
|
}
|
||||||
|
scanf("%d",&m);
|
||||||
|
while(m--)
|
||||||
|
{
|
||||||
|
scanf("%s %lf %s",a,&rate,b);
|
||||||
|
for(i=1;i<=curr;i++)
|
||||||
|
{
|
||||||
|
if(strcmp(s[i],a)==0)
|
||||||
|
{
|
||||||
|
x=i;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for(i=1;i<=curr;i++)
|
||||||
|
{
|
||||||
|
if(strcmp(s[i],b)==0)
|
||||||
|
{
|
||||||
|
y=i;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
map[x][y]=rate;
|
||||||
|
}
|
||||||
|
floyd();
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
53
HDOJ/1218_autoAC.cpp
Normal file
53
HDOJ/1218_autoAC.cpp
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
#include<stdio.h>
|
||||||
|
#include<string.h>
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int i,j,R,C;
|
||||||
|
int a[10][10],b[10][10];
|
||||||
|
char c,str[10];
|
||||||
|
for(i=0;i<10;i++)
|
||||||
|
{
|
||||||
|
for(j=0;j<10;j++)
|
||||||
|
{
|
||||||
|
a[i][j]=0;
|
||||||
|
b[i][j]=0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
while(1)
|
||||||
|
{
|
||||||
|
scanf("%s",str);
|
||||||
|
if(strcmp(str,"ENDOFINPUT")==0)
|
||||||
|
break;
|
||||||
|
if(strcmp(str,"START")==0)
|
||||||
|
{
|
||||||
|
scanf("%d%d",&R,&C);
|
||||||
|
getchar();
|
||||||
|
for(i=0;i<R;i++)
|
||||||
|
{
|
||||||
|
for(j=0;j<C;j++)
|
||||||
|
{
|
||||||
|
scanf("%c",&c);
|
||||||
|
a[i][j]=c-'0';
|
||||||
|
}
|
||||||
|
getchar();
|
||||||
|
}
|
||||||
|
for(i=0;i<R-1;i++)
|
||||||
|
{
|
||||||
|
for(j=0;j<C-1;j++)
|
||||||
|
{
|
||||||
|
b[i][j]=(a[i][j]+a[i+1][j]+a[i][j+1]+a[i+1][j+1])/4;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for(i=0;i<R-1;i++)
|
||||||
|
{
|
||||||
|
for(j=0;j<C-1;j++)
|
||||||
|
{
|
||||||
|
printf("%d",b[i][j]);
|
||||||
|
}
|
||||||
|
printf("\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(strcmp(str,"END")==0) continue;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
17
HDOJ/1219_autoAC.cpp
Normal file
17
HDOJ/1219_autoAC.cpp
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
#include<stdio.h>
|
||||||
|
#include<memory.h>
|
||||||
|
int main ()
|
||||||
|
{
|
||||||
|
int s,i,b[26];
|
||||||
|
char a[100001];
|
||||||
|
while(gets(a)!=NULL)
|
||||||
|
{
|
||||||
|
memset(b,0,sizeof(b));
|
||||||
|
for(i=0;a[i]!='\0';i++)
|
||||||
|
b[a[i]-'a']++;
|
||||||
|
for(i=0;i<26;i++)
|
||||||
|
printf("%c:%d\n",'a'+i,b[i]);
|
||||||
|
printf("\n");
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
8
HDOJ/1220_autoAC.cpp
Normal file
8
HDOJ/1220_autoAC.cpp
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
#include <stdio.h>
|
||||||
|
int main(){
|
||||||
|
int n;
|
||||||
|
while(~scanf("%d",&n)){
|
||||||
|
printf("%d\n",n*n*(n-1)/2*(n*n*n-2)+n*n*n*(n*n-5)/2+2*n*n);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
28
HDOJ/1221_autoAC.cpp
Normal file
28
HDOJ/1221_autoAC.cpp
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
#include <iostream>
|
||||||
|
#include <math.h>
|
||||||
|
using namespace std;
|
||||||
|
double a,b,r;
|
||||||
|
double xj(double xy,double x,double y,double aa,double bb)
|
||||||
|
{
|
||||||
|
double m,n=y+1;
|
||||||
|
m=r*r-(xy-aa)*(xy-aa);
|
||||||
|
if(m>0) n=sqrt(m)+bb;
|
||||||
|
if(m<0||n>y||n<x) return 0;
|
||||||
|
else return 1;
|
||||||
|
}
|
||||||
|
int main(){
|
||||||
|
int n;
|
||||||
|
scanf("%d",&n);
|
||||||
|
while(n--)
|
||||||
|
{
|
||||||
|
double x1,y1,x2,y2,a1,b1,c1,d1;
|
||||||
|
scanf("%lf%lf%lf%lf%lf%lf%lf",&a,&b,&r,&x1,&y1,&x2,&y2);
|
||||||
|
a1=x1>x2?x2:x1;b1=x1+x2-a1;
|
||||||
|
c1=y1>y2?y2:y1;d1=y1+y2-c1;
|
||||||
|
if(xj(a1,c1,d1,a,b)||xj(b1,c1,d1,a,b)||xj(c1,a1,b1,b,a)||xj(d1,a1,b1,b,a))
|
||||||
|
printf("YES\n");
|
||||||
|
else
|
||||||
|
printf("NO\n");
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
20
HDOJ/1222_autoAC.cpp
Normal file
20
HDOJ/1222_autoAC.cpp
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
#include <iostream>
|
||||||
|
#include <cstdio>
|
||||||
|
#include <vector>
|
||||||
|
#include <algorithm>
|
||||||
|
using namespace std;
|
||||||
|
__int64 gcd(__int64 a,__int64 b){
|
||||||
|
if(a<b)return gcd(b,a);
|
||||||
|
if(!b)return a;
|
||||||
|
return gcd(b,a%b);
|
||||||
|
}
|
||||||
|
int main(void){
|
||||||
|
__int64 n,T,m;
|
||||||
|
cin>>T;
|
||||||
|
while(T--){
|
||||||
|
cin>>m>>n;
|
||||||
|
if(gcd(m,n)==1)cout<<"NO\n";
|
||||||
|
else cout<<"YES\n";
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
88
HDOJ/1223_autoAC.cpp
Normal file
88
HDOJ/1223_autoAC.cpp
Normal file
|
@ -0,0 +1,88 @@
|
||||||
|
#include <iostream>
|
||||||
|
#include <iomanip>
|
||||||
|
using namespace std;
|
||||||
|
struct LL
|
||||||
|
{
|
||||||
|
int num[50];
|
||||||
|
int len;
|
||||||
|
};
|
||||||
|
LL count[51][51];
|
||||||
|
LL total[51];
|
||||||
|
LL operator+(const LL& a, const LL& b)
|
||||||
|
{
|
||||||
|
LL c;
|
||||||
|
int Len = a.len>b.len?a.len:b.len;
|
||||||
|
int jin = 0;
|
||||||
|
for(int i=0;i<Len;i++)
|
||||||
|
{
|
||||||
|
c.num[i] = jin;
|
||||||
|
jin = 0;
|
||||||
|
if(i<a.len)
|
||||||
|
c.num[i] += a.num[i];
|
||||||
|
if(i<b.len)
|
||||||
|
c.num[i] += b.num[i];
|
||||||
|
jin = c.num[i]/1000000;
|
||||||
|
c.num[i]%=1000000;
|
||||||
|
}
|
||||||
|
c.len = Len;
|
||||||
|
if(jin)
|
||||||
|
{
|
||||||
|
c.num[Len] = jin;
|
||||||
|
c.len++;
|
||||||
|
}
|
||||||
|
return c;
|
||||||
|
}
|
||||||
|
LL operator*(const LL& a, int num)
|
||||||
|
{
|
||||||
|
LL c;
|
||||||
|
int Len = a.len;
|
||||||
|
int jin = 0;
|
||||||
|
for(int i=0;i<Len;i++)
|
||||||
|
{
|
||||||
|
c.num[i] = jin;
|
||||||
|
jin = 0;
|
||||||
|
c.num[i]+=a.num[i]*num;
|
||||||
|
jin = c.num[i]/1000000;
|
||||||
|
c.num[i]%=1000000;
|
||||||
|
}
|
||||||
|
c.len = Len;
|
||||||
|
if(jin)
|
||||||
|
{
|
||||||
|
c.num[Len] = jin;
|
||||||
|
c.len++;
|
||||||
|
}
|
||||||
|
return c;
|
||||||
|
}
|
||||||
|
ostream& operator<<(ostream& out, const LL& a)
|
||||||
|
{
|
||||||
|
out << a.num[a.len-1];
|
||||||
|
for(int i=a.len-2;i>=0;i--)
|
||||||
|
{
|
||||||
|
out << setfill('0') << setw(6) << a.num[i];
|
||||||
|
}
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
count[1][0].num[0] = 1;
|
||||||
|
count[1][0].len = 1;
|
||||||
|
total[1].num[0] = 1;
|
||||||
|
total[1].len = 1;
|
||||||
|
for(int i=2;i<51;i++)
|
||||||
|
{
|
||||||
|
total[i] = count[i][0] = count[i-1][0] * i;
|
||||||
|
for(int j=1;j<i;j++)
|
||||||
|
{
|
||||||
|
count[i][j] = (count[i-1][j-1]+count[i-1][j]) * (i-j);
|
||||||
|
total[i]=total[i]+count[i][j];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
int P;
|
||||||
|
cin >> P;
|
||||||
|
while(P--)
|
||||||
|
{
|
||||||
|
int k;
|
||||||
|
cin >> k;
|
||||||
|
cout << total[k] << endl;
|
||||||
|
}
|
||||||
|
}
|
60
HDOJ/1224_autoAC.cpp
Normal file
60
HDOJ/1224_autoAC.cpp
Normal file
|
@ -0,0 +1,60 @@
|
||||||
|
#include <cstdlib>
|
||||||
|
#include <iostream>
|
||||||
|
using namespace std;
|
||||||
|
const int maxn=102;
|
||||||
|
int d[maxn];
|
||||||
|
bool map[maxn][maxn];
|
||||||
|
int w[maxn];
|
||||||
|
int pre[maxn];
|
||||||
|
void print(int x)
|
||||||
|
{
|
||||||
|
if(pre[x]!=0)
|
||||||
|
print(pre[x]);
|
||||||
|
printf("%d->",x);
|
||||||
|
}
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int t,n,m,x,y,l,i,j;
|
||||||
|
scanf("%d",&t);
|
||||||
|
for(l=1;l<=t;l++)
|
||||||
|
{
|
||||||
|
scanf("%d",&n);
|
||||||
|
for(i=1;i<=n;i++) scanf("%d",&d[i]);
|
||||||
|
d[n+1]=0;
|
||||||
|
for(i=1;i<=n+1;i++)
|
||||||
|
{
|
||||||
|
w[i]=0;
|
||||||
|
pre[i]=0;
|
||||||
|
for(j=i;j<=n+1;j++)
|
||||||
|
{
|
||||||
|
map[i][j]=false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
scanf("%d",&m);
|
||||||
|
for(i=1;i<=m;i++)
|
||||||
|
{
|
||||||
|
scanf("%d%d",&x,&y);
|
||||||
|
map[x][y]=true;
|
||||||
|
}
|
||||||
|
for(j=1;j<=n+1;j++)
|
||||||
|
{
|
||||||
|
int max=0;
|
||||||
|
int k=0;
|
||||||
|
for(i=1;i<j;i++)
|
||||||
|
{
|
||||||
|
if(map[i][j]&&max<=w[i])
|
||||||
|
{
|
||||||
|
max=w[i];
|
||||||
|
k=i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
pre[j]=k;
|
||||||
|
w[j]=max+d[j];
|
||||||
|
}
|
||||||
|
printf("CASE %d#\npoints : %d\ncircuit : ",l,w[n+1]);
|
||||||
|
print(pre[n+1]);
|
||||||
|
printf("1\n");
|
||||||
|
if(l<t) printf("\n");
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
107
HDOJ/1225_autoAC.cpp
Normal file
107
HDOJ/1225_autoAC.cpp
Normal file
|
@ -0,0 +1,107 @@
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
char name[30];
|
||||||
|
int score;
|
||||||
|
int kick;
|
||||||
|
int lost;
|
||||||
|
}TEAM;
|
||||||
|
int is_exist(int len,TEAM *p,const char *s)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
for(i = 0 ; i < len ; ++i)
|
||||||
|
{
|
||||||
|
if(!strcmp(p[i].name,s))
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
int find(TEAM *p,int len,const char *s)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
for(i = 0 ; i < len ; ++i)
|
||||||
|
{
|
||||||
|
if(!strcmp(p[i].name,s))
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
void swap(TEAM *p1,TEAM *p2)
|
||||||
|
{
|
||||||
|
TEAM t = *p1;
|
||||||
|
*p1 = *p2;
|
||||||
|
*p2 = t;
|
||||||
|
}
|
||||||
|
void sort(TEAM *p,const int LEN)
|
||||||
|
{
|
||||||
|
int i,j;
|
||||||
|
for(i = 0 ; i < LEN ; ++i)
|
||||||
|
{
|
||||||
|
for(j = i + 1 ; j < LEN ; ++j)
|
||||||
|
{
|
||||||
|
if(p[i].score < p[j].score)
|
||||||
|
swap(&p[i],&p[j]);
|
||||||
|
else if(p[i].score == p[j].score)
|
||||||
|
{
|
||||||
|
if(p[i].kick - p[i].lost < p[j].kick - p[j].lost)
|
||||||
|
swap(&p[i],&p[j]);
|
||||||
|
else if(p[i].kick - p[i].lost == p[j].kick - p[j].lost)
|
||||||
|
{
|
||||||
|
if(p[i].kick < p[j].kick)
|
||||||
|
swap(&p[i],&p[j]);
|
||||||
|
else if(p[i].kick == p[j].kick)
|
||||||
|
{
|
||||||
|
if(strcmp(p[i].name,p[j].name) > 0)
|
||||||
|
swap(&p[i],&p[j]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
int main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
int T,a,b;
|
||||||
|
char t1[30],t2[30],vs[5],fen[10];
|
||||||
|
TEAM team[5010];
|
||||||
|
while(scanf("%d",&T) != EOF)
|
||||||
|
{
|
||||||
|
memset(team,0,sizeof(team));
|
||||||
|
int t = T * (T - 1);
|
||||||
|
int ix_team = 0;
|
||||||
|
while(t--)
|
||||||
|
{
|
||||||
|
scanf("%s%s%s%s",t1,vs,t2,fen);
|
||||||
|
sscanf(fen,"%d:%d",&a,&b);
|
||||||
|
if(ix_team < T)
|
||||||
|
{
|
||||||
|
if(0 == is_exist(ix_team,team,t1))
|
||||||
|
strcpy(team[ix_team++].name,t1);
|
||||||
|
if(0 == is_exist(ix_team,team,t2))
|
||||||
|
strcpy(team[ix_team++].name,t2);
|
||||||
|
}
|
||||||
|
int ix1 = find(team,ix_team,t1);
|
||||||
|
int ix2 = find(team,ix_team,t2);
|
||||||
|
int score;
|
||||||
|
if(a > b) score = 3;
|
||||||
|
else if(a == b) score = 1;
|
||||||
|
else score = 0;
|
||||||
|
team[ix1].kick += a;
|
||||||
|
team[ix1].lost += b;
|
||||||
|
team[ix1].score += score;
|
||||||
|
if(b > a) score = 3;
|
||||||
|
else if(b == a) score = 1;
|
||||||
|
else score = 0;
|
||||||
|
team[ix2].kick += b;
|
||||||
|
team[ix2].lost += a;
|
||||||
|
team[ix2].score += score;
|
||||||
|
}
|
||||||
|
sort(team,T);
|
||||||
|
int i;
|
||||||
|
for(i = 0 ; i < T ; ++i)
|
||||||
|
printf("%s %d\n",team[i].name,team[i].score);
|
||||||
|
printf("\n");
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
73
HDOJ/1226_autoAC.cpp
Normal file
73
HDOJ/1226_autoAC.cpp
Normal file
|
@ -0,0 +1,73 @@
|
||||||
|
#include <cstdio>
|
||||||
|
#include <cstdlib>
|
||||||
|
#include <cstring>
|
||||||
|
#define MAXN 5000
|
||||||
|
#define MAXM 17
|
||||||
|
#define MAXC 17
|
||||||
|
using namespace std;
|
||||||
|
int num[MAXM];
|
||||||
|
bool status[MAXN];
|
||||||
|
int basis, sys, n;
|
||||||
|
struct Node{
|
||||||
|
int mod;
|
||||||
|
int dig;
|
||||||
|
int pre;
|
||||||
|
int step;
|
||||||
|
}Queue[MAXN], init = { 0, 0, -1 };
|
||||||
|
int cmp(const void *a, const void *b){
|
||||||
|
return *(int *)a - *(int *)b;
|
||||||
|
}
|
||||||
|
void echo(int x){
|
||||||
|
if (Queue[x].pre == -1) return;
|
||||||
|
else echo(Queue[x].pre);
|
||||||
|
if (Queue[x].dig <= 9)
|
||||||
|
printf("%d", Queue[x].dig);
|
||||||
|
else
|
||||||
|
putchar(Queue[x].dig + 'A' - 10);
|
||||||
|
}
|
||||||
|
bool bfs(){
|
||||||
|
Node curr, next;
|
||||||
|
int front = 0, rear = 1, res;
|
||||||
|
Queue[0] = init;
|
||||||
|
memset(status, 0, sizeof(status));
|
||||||
|
while (front != rear){
|
||||||
|
curr = Queue[front];
|
||||||
|
for (int i = 0; i < n; i++){
|
||||||
|
res = (curr.mod * sys + num[i]) % basis;
|
||||||
|
if (status[res] || (curr.pre == -1 && num[i] == 0) || curr.step >= 500) continue;
|
||||||
|
status[res] = 1;
|
||||||
|
Queue[rear].mod = res;
|
||||||
|
Queue[rear].dig = num[i];
|
||||||
|
Queue[rear].pre = front;
|
||||||
|
Queue[rear].step = curr.step + 1;
|
||||||
|
if (res == 0) { echo(rear); putchar('\n'); return true; }
|
||||||
|
rear++;
|
||||||
|
}
|
||||||
|
front++;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
int main(){
|
||||||
|
int t;
|
||||||
|
char tmp[3];
|
||||||
|
scanf("%d", &t);
|
||||||
|
while (t--){
|
||||||
|
scanf("%d %d %d", &basis, &sys, &n);
|
||||||
|
for (int i = 0; i < n; i++){
|
||||||
|
scanf("%s", tmp);
|
||||||
|
if (tmp[0] <= '9' && tmp[0] >= '0') num[i] = tmp[0] - '0';
|
||||||
|
else if (tmp[0] <= 'F' && tmp[0] >= 'A') num[i] = tmp[0] - 'A' + 10;
|
||||||
|
}
|
||||||
|
qsort(num, n, sizeof(int), cmp);
|
||||||
|
if (basis == 0){
|
||||||
|
if (num[0] == 0)
|
||||||
|
printf("0\n");
|
||||||
|
else
|
||||||
|
printf("give me the bomb please\n");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (!bfs())
|
||||||
|
printf("give me the bomb please\n");
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
38
HDOJ/1227_autoAC.cpp
Normal file
38
HDOJ/1227_autoAC.cpp
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
#include <stdio.h>
|
||||||
|
#define inf 0x7fffffff
|
||||||
|
int abbs(int a) { return a<0 ? -a : a ; }
|
||||||
|
int food[205], dp[35][205], dis[205][205];
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int n, m, i, j, k, mid, minn, p=1;
|
||||||
|
while(scanf("%d%d", &n, &m) != EOF )
|
||||||
|
{
|
||||||
|
if( n==0 && m==0 ) break;
|
||||||
|
for(i=1; i<=n; i++)
|
||||||
|
scanf("%d",&food[i]);
|
||||||
|
for(i=1; i<=n; i++)
|
||||||
|
{
|
||||||
|
for(j=i; j<=n; j++)
|
||||||
|
{
|
||||||
|
dis[i][j] = 0; mid = (i+j)/2;
|
||||||
|
for(k=i; k<=j; k++ )
|
||||||
|
dis[i][j] += abbs( food[k] - food[mid] ) ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for( i=1; i<=n; i++ )
|
||||||
|
{
|
||||||
|
dp[1][i] = dis[1][i];
|
||||||
|
}
|
||||||
|
for(i=2; i<=m; i++ )
|
||||||
|
{
|
||||||
|
for(j=i; j<=n; j++ )
|
||||||
|
{
|
||||||
|
dp[i][j] = inf ;
|
||||||
|
for(k=i-1; k<j; k++ )
|
||||||
|
if( dp[i][j] > dp[i-1][k] + dis[k+1][j] )
|
||||||
|
dp[i][j] = dp[i-1][k] + dis[k+1][j] ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
printf("Chain %d\nTotal distance sum = %d\n\n" , p++, dp[m][n] );
|
||||||
|
}
|
||||||
|
}
|
61
HDOJ/1228_autoAC.cpp
Normal file
61
HDOJ/1228_autoAC.cpp
Normal file
|
@ -0,0 +1,61 @@
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <ctype.h>
|
||||||
|
#include <string.h>
|
||||||
|
int cmletter(char *s)
|
||||||
|
{
|
||||||
|
int op;
|
||||||
|
if(strcmp(s,"zero")==0) op=0;
|
||||||
|
if(strcmp(s,"one")==0)op=1;
|
||||||
|
if(strcmp(s,"two")==0) op=2;
|
||||||
|
if(strcmp(s,"three")==0) op=3;
|
||||||
|
if(strcmp(s,"four")==0) op=4;
|
||||||
|
if(strcmp(s,"five")==0) op=5;
|
||||||
|
if(strcmp(s,"six")==0) op=6;
|
||||||
|
if(strcmp(s,"seven")==0) op=7;
|
||||||
|
if(strcmp(s,"eight")==0) op=8;
|
||||||
|
if(strcmp(s,"nine")==0) op=9;
|
||||||
|
return op;
|
||||||
|
}
|
||||||
|
int dig(char *t,char *u)
|
||||||
|
{
|
||||||
|
int len1,s,r;
|
||||||
|
len1 = strlen(u);
|
||||||
|
if(len1>0)
|
||||||
|
r = 10*cmletter(t)+cmletter(u);
|
||||||
|
else
|
||||||
|
r = cmletter(t);
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int i,j,k,tg,len,a,b;
|
||||||
|
char s[1000],t[16],u[16];
|
||||||
|
while(gets(s))
|
||||||
|
{
|
||||||
|
len = strlen(s);
|
||||||
|
tg = 0;
|
||||||
|
for(i=0,j=0,k=0;i<len;i++)
|
||||||
|
{
|
||||||
|
if(s[i]=='+')break;
|
||||||
|
if(islower(s[i])&&!tg)t[j++]=s[i];
|
||||||
|
if(islower(s[i])&&tg) u[k++]=s[i];
|
||||||
|
else if(isspace(s[i])) tg = 1;
|
||||||
|
}
|
||||||
|
t[j]='\0';
|
||||||
|
u[k]='\0';
|
||||||
|
a = dig(t,u);
|
||||||
|
tg = 0;
|
||||||
|
for(i=i+2,j=0,k=0;i<len;i++)
|
||||||
|
{
|
||||||
|
if(islower(s[i])&&!tg)t[j++]=s[i];
|
||||||
|
if(islower(s[i])&&tg) u[k++]=s[i];
|
||||||
|
else if(isspace(s[i])) tg = 1;
|
||||||
|
}
|
||||||
|
t[j]='\0';
|
||||||
|
u[k]='\0';
|
||||||
|
b = dig(t,u);
|
||||||
|
if(a+b)printf("%d\n",a+b);
|
||||||
|
else break;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
16
HDOJ/1229_autoAC.cpp
Normal file
16
HDOJ/1229_autoAC.cpp
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
#include <stdio.h>
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int a,b,k;
|
||||||
|
while(scanf("%d%d%d",&a,&b,&k)!=EOF&&a&&b)
|
||||||
|
{
|
||||||
|
int m=1;
|
||||||
|
while(k--)
|
||||||
|
m*=10;
|
||||||
|
if(a%m==b%m)
|
||||||
|
printf("-1\n");
|
||||||
|
else
|
||||||
|
printf("%d\n",a+b);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
95
HDOJ/1230_autoAC.cpp
Normal file
95
HDOJ/1230_autoAC.cpp
Normal file
|
@ -0,0 +1,95 @@
|
||||||
|
#include <iostream>
|
||||||
|
#include <algorithm>
|
||||||
|
#include <string>
|
||||||
|
#include <cstdio>
|
||||||
|
#include <cstring>
|
||||||
|
#include <cstdlib>
|
||||||
|
#include <cmath>
|
||||||
|
#include <vector>
|
||||||
|
#include<queue>
|
||||||
|
#include<map>
|
||||||
|
using namespace std;
|
||||||
|
#define lson ((root<<1)+1)
|
||||||
|
#define rson ((root<<1)+2)
|
||||||
|
#define MID ((l+r)>>1)
|
||||||
|
typedef long long ll;
|
||||||
|
typedef pair<int,int> P;
|
||||||
|
const int maxn=150;
|
||||||
|
const int base=1000;
|
||||||
|
const int inf=999999;
|
||||||
|
int isp[maxn];
|
||||||
|
int p[maxn];
|
||||||
|
void mark()
|
||||||
|
{
|
||||||
|
int i,j;
|
||||||
|
int len=0;
|
||||||
|
isp[0]=isp[1]=1;
|
||||||
|
for(i=2;i<maxn;i++)
|
||||||
|
if(isp[i]==0)
|
||||||
|
{
|
||||||
|
p[len++]=i;
|
||||||
|
for(j=i+i;j<maxn;j+=i)
|
||||||
|
isp[j]=1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int n,m,i,j,k,t;
|
||||||
|
mark();
|
||||||
|
int a[maxn],b[maxn];
|
||||||
|
int lena,lenb;
|
||||||
|
int x,y;
|
||||||
|
char op;
|
||||||
|
while(1)
|
||||||
|
{
|
||||||
|
memset(a,0,sizeof(a));
|
||||||
|
memset(b,0,sizeof(b));
|
||||||
|
scanf("%d",&x);
|
||||||
|
i=0;
|
||||||
|
a[i++]=x;
|
||||||
|
scanf("%c",&op);
|
||||||
|
while(op==',')
|
||||||
|
{
|
||||||
|
scanf("%d",&x);
|
||||||
|
a[i++]=x;
|
||||||
|
scanf("%c",&op);
|
||||||
|
}
|
||||||
|
lena=i;
|
||||||
|
scanf("%d",&x);
|
||||||
|
i=0;
|
||||||
|
b[i++]=x;
|
||||||
|
scanf("%c",&op);
|
||||||
|
while(op==',')
|
||||||
|
{
|
||||||
|
scanf("%d",&x);
|
||||||
|
b[i++]=x;
|
||||||
|
scanf("%c",&op);
|
||||||
|
}
|
||||||
|
lenb=i;
|
||||||
|
reverse(a,a+lena);
|
||||||
|
reverse(b,b+lenb);
|
||||||
|
if(a[0]==0&&b[0]==0&&lena==1&&lenb==1)break;
|
||||||
|
int maxlen=max(lena,lenb);
|
||||||
|
int sum[maxn];
|
||||||
|
memset(sum,0,sizeof(sum));
|
||||||
|
for(i=0,k=0;i<maxlen;i++)
|
||||||
|
{
|
||||||
|
sum[k++]=a[i]+b[i];
|
||||||
|
}
|
||||||
|
int lensum=k;
|
||||||
|
for(i=0;i<lensum+10;i++)
|
||||||
|
{
|
||||||
|
int cur=sum[i]%p[i];
|
||||||
|
int mod=sum[i]/p[i];
|
||||||
|
sum[i]=cur;
|
||||||
|
sum[i+1]+=mod;
|
||||||
|
}
|
||||||
|
for(i=maxn-1;i>=0;i--)if(sum[i]!=0)break;
|
||||||
|
j=i;
|
||||||
|
printf("%d",sum[j]);
|
||||||
|
for(i=j-1;i>=0;i--)
|
||||||
|
printf(",%d",sum[i]);
|
||||||
|
printf("\n");
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
36
HDOJ/1231_autoAC.cpp
Normal file
36
HDOJ/1231_autoAC.cpp
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
#include <stdio.h>
|
||||||
|
int a[100000];
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int n;
|
||||||
|
while(~scanf("%d",&n)&&n)
|
||||||
|
{
|
||||||
|
for(int i=0;i<n;i++)
|
||||||
|
scanf("%d",&a[i]);
|
||||||
|
int thissum=0;
|
||||||
|
int maxsum=a[0];
|
||||||
|
int stop=a[0];
|
||||||
|
int temp=a[0];
|
||||||
|
int start=a[0];
|
||||||
|
for(int i=0;i<n;i++)
|
||||||
|
{
|
||||||
|
thissum+=a[i];
|
||||||
|
if(thissum>maxsum)
|
||||||
|
{
|
||||||
|
maxsum=thissum;
|
||||||
|
start=temp;
|
||||||
|
stop=a[i];
|
||||||
|
}
|
||||||
|
if(thissum<0)
|
||||||
|
{
|
||||||
|
thissum=0;
|
||||||
|
temp=a[i+1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(maxsum<0)
|
||||||
|
printf("0 %d %d\n",a[0],a[n-1]);
|
||||||
|
else
|
||||||
|
printf("%d %d %d\n",maxsum,start,stop);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
38
HDOJ/1232_autoAC.cpp
Normal file
38
HDOJ/1232_autoAC.cpp
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
#include <stdio.h>
|
||||||
|
int p[1222];
|
||||||
|
int i;
|
||||||
|
int find(int x)
|
||||||
|
{
|
||||||
|
if(x!=p[x])
|
||||||
|
p[x]=find(p[x]);
|
||||||
|
return p[x];
|
||||||
|
}
|
||||||
|
int hebing(int x,int y)
|
||||||
|
{
|
||||||
|
return p[x]=y;
|
||||||
|
}
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int n,m,x,y,x1,y1;
|
||||||
|
while(~scanf("%d%d",&n,&m)&&n)
|
||||||
|
{
|
||||||
|
for(i=1;i<=1222;i++)
|
||||||
|
p[i]=i;
|
||||||
|
for(i=1;i<=m;i++)
|
||||||
|
{
|
||||||
|
scanf("%d%d",&x,&y);
|
||||||
|
x1=find(x);
|
||||||
|
y1=find(y);
|
||||||
|
if(x1!=y1)
|
||||||
|
hebing(x1,y1);
|
||||||
|
}
|
||||||
|
int ans=0;
|
||||||
|
for(i=1;i<=n;i++)
|
||||||
|
{
|
||||||
|
if(p[i]==i)
|
||||||
|
ans++;
|
||||||
|
}
|
||||||
|
printf("%d\n",ans-1);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
63
HDOJ/1233_autoAC.cpp
Normal file
63
HDOJ/1233_autoAC.cpp
Normal file
|
@ -0,0 +1,63 @@
|
||||||
|
#include<stdio.h>
|
||||||
|
#include<algorithm>
|
||||||
|
#define max 50*99+10
|
||||||
|
using namespace std;
|
||||||
|
int set[110];
|
||||||
|
struct line
|
||||||
|
{
|
||||||
|
int dis;
|
||||||
|
int start;
|
||||||
|
int end;
|
||||||
|
}num[max];
|
||||||
|
bool cmp(line a,line b)
|
||||||
|
{
|
||||||
|
return a.dis<b.dis;
|
||||||
|
}
|
||||||
|
int find(int p)
|
||||||
|
{
|
||||||
|
int child=p;
|
||||||
|
int t;
|
||||||
|
while(p!=set[p])
|
||||||
|
p=set[p];
|
||||||
|
while(child!=p)
|
||||||
|
{
|
||||||
|
t=set[child];
|
||||||
|
set[child]=p;
|
||||||
|
child=t;
|
||||||
|
}
|
||||||
|
return p;
|
||||||
|
}
|
||||||
|
void merge(int x,int y)
|
||||||
|
{
|
||||||
|
int fx=find(x);
|
||||||
|
int fy=find(y);
|
||||||
|
if(fx!=fy)
|
||||||
|
set[fx]=fy;
|
||||||
|
}
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int city,need;
|
||||||
|
int n,i,j;
|
||||||
|
while(scanf("%d",&city)&&(city!=0))
|
||||||
|
{
|
||||||
|
for(i=1;i<=city;i++)
|
||||||
|
set[i]=i;
|
||||||
|
n=city*(city-1)/2;
|
||||||
|
for(i=0;i<n;i++)
|
||||||
|
{
|
||||||
|
scanf("%d%d%d",&num[i].start,&num[i].end,&num[i].dis);
|
||||||
|
}
|
||||||
|
sort(num,num+n,cmp);
|
||||||
|
need=0;
|
||||||
|
for(i=0;i<n;i++)
|
||||||
|
{
|
||||||
|
if(find(num[i].start)!=find(num[i].end))
|
||||||
|
{
|
||||||
|
merge(num[i].start,num[i].end);
|
||||||
|
need+=num[i].dis;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
printf("%d\n",need);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
50
HDOJ/1234_autoAC.cpp
Normal file
50
HDOJ/1234_autoAC.cpp
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
#include<stdio.h>
|
||||||
|
#include<string.h>
|
||||||
|
struct node
|
||||||
|
{
|
||||||
|
char id[100];
|
||||||
|
char qd[100];
|
||||||
|
char ql[100];
|
||||||
|
};
|
||||||
|
struct node s[1000];
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int n,i,j,k,m,x1,x2;
|
||||||
|
char c[100];
|
||||||
|
while(scanf("%d",&n)!=EOF&&n)
|
||||||
|
{
|
||||||
|
while(n--)
|
||||||
|
{ x1=0;x2=0;
|
||||||
|
scanf("%d",&m);
|
||||||
|
getchar();
|
||||||
|
for(i=0;i<m;i++)
|
||||||
|
{
|
||||||
|
scanf("%s%s%s",s[i].id,s[i].qd,s[i].ql);
|
||||||
|
}
|
||||||
|
if(m==1)
|
||||||
|
{
|
||||||
|
printf("%s %s\n",s[0].id,s[0].id);
|
||||||
|
}
|
||||||
|
if(m>1)
|
||||||
|
{ strcpy(c,s[0].qd);
|
||||||
|
for(i=1;i<m;i++)
|
||||||
|
{
|
||||||
|
if(strcmp(c,s[i].qd)>0)
|
||||||
|
{
|
||||||
|
strcpy(c,s[i].qd);x1=i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
strcpy(c,s[0].ql);
|
||||||
|
for(i=1;i<m;i++)
|
||||||
|
{
|
||||||
|
if(strcmp(c,s[i].ql)<0)
|
||||||
|
{
|
||||||
|
strcpy(c,s[i].ql);x2=i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
printf("%s %s\n",s[x1].id,s[x2].id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
24
HDOJ/1235_autoAC.cpp
Normal file
24
HDOJ/1235_autoAC.cpp
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
#include<stdio.h>
|
||||||
|
int main ()
|
||||||
|
{
|
||||||
|
int N;
|
||||||
|
int i;
|
||||||
|
while(scanf("%d", &N)!=EOF)
|
||||||
|
{
|
||||||
|
if(N==0)
|
||||||
|
break;
|
||||||
|
int num[1200], T, p=0;
|
||||||
|
for(int i=0; i<N; i++)
|
||||||
|
{
|
||||||
|
scanf("%d", &num[i]);
|
||||||
|
}
|
||||||
|
scanf("%d", &T);
|
||||||
|
for(i=0; i<N; i++)
|
||||||
|
{
|
||||||
|
if(num[i]==T)
|
||||||
|
p++;
|
||||||
|
}
|
||||||
|
printf("%d\n", p);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
40
HDOJ/1236_autoAC.cpp
Normal file
40
HDOJ/1236_autoAC.cpp
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
#include<iostream>
|
||||||
|
#include<algorithm>
|
||||||
|
#include<string>
|
||||||
|
using namespace std;
|
||||||
|
struct stu{
|
||||||
|
string na;
|
||||||
|
double sco;
|
||||||
|
}s[1010];
|
||||||
|
bool cmp(stu a,stu b){
|
||||||
|
if(a.sco==b.sco)
|
||||||
|
return a.na<b.na;
|
||||||
|
return a.sco>b.sco;
|
||||||
|
}
|
||||||
|
int main(){
|
||||||
|
int n,i,j,m,x,ans;
|
||||||
|
double g,a[20];
|
||||||
|
while(scanf("%d",&n),n){
|
||||||
|
scanf("%d%lf",&m,&g);
|
||||||
|
for(i=1;i<=m;i++)
|
||||||
|
scanf("%lf",&a[i]);
|
||||||
|
ans=0;
|
||||||
|
for(i=0;i<n;i++){
|
||||||
|
cin>>s[i].na;
|
||||||
|
scanf("%d",&m);
|
||||||
|
s[i].sco=0;
|
||||||
|
for(j=0;j<m;j++){
|
||||||
|
scanf("%d",&x);
|
||||||
|
s[i].sco+=a[x];
|
||||||
|
}
|
||||||
|
if(s[i].sco>=g)
|
||||||
|
ans++;
|
||||||
|
}
|
||||||
|
printf("%d\n",ans);
|
||||||
|
sort(s,s+n,cmp);
|
||||||
|
for(i=0;i<ans;i++){
|
||||||
|
cout<<s[i].na;
|
||||||
|
printf(" %.lf\n",s[i].sco);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
37
HDOJ/1237_autoAC.cpp
Normal file
37
HDOJ/1237_autoAC.cpp
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
#include <iostream>
|
||||||
|
#include <cstdio>
|
||||||
|
#include <cstring>
|
||||||
|
using namespace std;
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
double num[205];
|
||||||
|
int i;
|
||||||
|
double s;
|
||||||
|
char f;
|
||||||
|
double sum;
|
||||||
|
while(cin>>s)
|
||||||
|
{
|
||||||
|
memset(num,'\0',sizeof(num));
|
||||||
|
num[0]=s;
|
||||||
|
i=0;
|
||||||
|
f=getchar();
|
||||||
|
if(f=='\n'&&s==0)break;
|
||||||
|
while(1)
|
||||||
|
{
|
||||||
|
cin>>f>>s;
|
||||||
|
if(f=='*')num[i]*=s;
|
||||||
|
else if(f=='/')num[i]/=s;
|
||||||
|
else if(f=='+')num[++i]=s;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
num[++i]=-s;
|
||||||
|
}
|
||||||
|
if(getchar()=='\n')break;
|
||||||
|
}
|
||||||
|
sum=0;
|
||||||
|
for(i;i>=0;i--)
|
||||||
|
sum+=num[i];
|
||||||
|
printf("%.2lf\n",sum);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
48
HDOJ/1239_autoAC.cpp
Normal file
48
HDOJ/1239_autoAC.cpp
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
#include<cstdio>
|
||||||
|
#include<cmath>
|
||||||
|
bool prime[10001];
|
||||||
|
void IsPrime(){
|
||||||
|
prime[0]=prime[1]=0;prime[2]=1;
|
||||||
|
for(int i=3;i<=10000;i++)
|
||||||
|
prime[i]=i%2==0?0:1;
|
||||||
|
int t=(int)sqrt(10000*1.0);
|
||||||
|
for(int i=3;i<=t;i++)
|
||||||
|
if(prime[i])
|
||||||
|
for(int j=i*i;j<10000;j+=2*i)
|
||||||
|
prime[j]=0;
|
||||||
|
}
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
IsPrime();
|
||||||
|
int pri[10010];
|
||||||
|
int num = 0;
|
||||||
|
for(int i = 0; i < 10000; i++)
|
||||||
|
{
|
||||||
|
if(prime[i])
|
||||||
|
pri[num++] = i;
|
||||||
|
}
|
||||||
|
int m, a, b;
|
||||||
|
while(scanf("%d%d%d", &m, &a, &b)!=EOF && m && a && b)
|
||||||
|
{
|
||||||
|
int maxx = 0, ii, jj;
|
||||||
|
for(int i = num-1; i >= 0; i--)
|
||||||
|
{
|
||||||
|
for(int j = i; j <= num-1; j++)
|
||||||
|
{
|
||||||
|
if(pri[j] > m || pri[i]*pri[j]>m || 1.0*pri[i]/pri[j]<1.0*a/b)
|
||||||
|
continue;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(maxx < pri[i]*pri[j])
|
||||||
|
{
|
||||||
|
maxx = pri[i]*pri[j];
|
||||||
|
ii = pri[i];
|
||||||
|
jj = pri[j];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
printf("%d %d\n", ii, jj);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
76
HDOJ/1240_autoAC.cpp
Normal file
76
HDOJ/1240_autoAC.cpp
Normal file
|
@ -0,0 +1,76 @@
|
||||||
|
#include<stdio.h>
|
||||||
|
#include<queue>
|
||||||
|
using namespace std;
|
||||||
|
char map[10][10][10];
|
||||||
|
int startx,starty,startz,endx,endy,endz;
|
||||||
|
int n;
|
||||||
|
struct node
|
||||||
|
{
|
||||||
|
int x,y,z,step;
|
||||||
|
friend bool operator <(node a,node b)
|
||||||
|
{
|
||||||
|
return a.step>b.step;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
void bfs(int x1,int y1,int z1,int x2,int y2,int z2)
|
||||||
|
{
|
||||||
|
int k;
|
||||||
|
int move[6][3]={0,0,1,0,0,-1,0,1,0,0,-1,0,1,0,0,-1,0,0};
|
||||||
|
node now,next;
|
||||||
|
priority_queue<node>q;
|
||||||
|
now.x=x1;
|
||||||
|
now.y=y1;
|
||||||
|
now.z=z1;
|
||||||
|
now.step=0;
|
||||||
|
map[now.x][now.y][now.z]='X';
|
||||||
|
q.push(now);
|
||||||
|
while(!q.empty())
|
||||||
|
{
|
||||||
|
next=q.top();
|
||||||
|
q.pop();
|
||||||
|
if(next.x==x2&&next.y==y2&&next.z==z2)
|
||||||
|
{
|
||||||
|
printf("%d %d\n",n,next.step);
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
for(k=0;k<6;k++)
|
||||||
|
{
|
||||||
|
now.x=next.x+move[k][0];
|
||||||
|
now.y=next.y+move[k][1];
|
||||||
|
now.z=next.z+move[k][2];
|
||||||
|
if(now.x>=0&&now.x<n&&now.y>=0&&now.y<n&&now.z>=0&&now.z<n&&map[now.x][now.y][now.z]=='O')
|
||||||
|
{
|
||||||
|
now.step=next.step+1;
|
||||||
|
map[now.x][now.y][now.z]='X';
|
||||||
|
q.push(now);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
printf("NO ROUTE\n");
|
||||||
|
}
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int i,j,k;
|
||||||
|
char s[10];
|
||||||
|
char c;
|
||||||
|
while(scanf("%s %d",s,&n)!=EOF)
|
||||||
|
{
|
||||||
|
c=getchar();
|
||||||
|
for(i=0;i<n;i++)
|
||||||
|
{
|
||||||
|
for(j=0;j<n;j++)
|
||||||
|
{
|
||||||
|
for(k=0;k<n;k++)
|
||||||
|
{
|
||||||
|
scanf("%c",&map[i][j][k]);
|
||||||
|
}
|
||||||
|
c=getchar();
|
||||||
|
}
|
||||||
|
c=getchar();
|
||||||
|
}
|
||||||
|
scanf("%d%d%d%d%d%d",&startx,&starty,&startz,&endx,&endy,&endz);
|
||||||
|
scanf("%s",s);
|
||||||
|
bfs(startx,starty,startz,endx,endy,endz);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
45
HDOJ/1241_autoAC.cpp
Normal file
45
HDOJ/1241_autoAC.cpp
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
#include<stdio.h>
|
||||||
|
#include<string.h>
|
||||||
|
char map[110][110];
|
||||||
|
int move[8][2]={1,0,-1,0,0,1,0,-1,1,1,-1,-1,1,-1,-1,1};
|
||||||
|
int h,w;
|
||||||
|
void dfs(int x,int y)
|
||||||
|
{
|
||||||
|
int next_x,next_y,i;
|
||||||
|
map[x][y]='*';
|
||||||
|
for(i=0;i<8;i++)
|
||||||
|
{
|
||||||
|
next_x=x+move[i][0];
|
||||||
|
next_y=y+move[i][1];
|
||||||
|
if(next_x>=0&&next_x<h&&next_y>=0&&next_y<w)
|
||||||
|
{
|
||||||
|
if(map[next_x][next_y]=='@')
|
||||||
|
{
|
||||||
|
dfs(next_x,next_y);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int i,j,sum;
|
||||||
|
while(scanf("%d%d",&h,&w)&&(h!=0||w!=0))
|
||||||
|
{
|
||||||
|
for(i=0;i<h;i++)
|
||||||
|
scanf("%s",map[i]);
|
||||||
|
sum=0;
|
||||||
|
for(i=0;i<h;i++)
|
||||||
|
{
|
||||||
|
for(j=0;j<w;j++)
|
||||||
|
{
|
||||||
|
if(map[i][j]=='@')
|
||||||
|
{
|
||||||
|
dfs(i,j);
|
||||||
|
sum++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
printf("%d\n",sum);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
103
HDOJ/1242_autoAC.cpp
Normal file
103
HDOJ/1242_autoAC.cpp
Normal file
|
@ -0,0 +1,103 @@
|
||||||
|
#include<stdio.h>
|
||||||
|
#include<string.h>
|
||||||
|
#include<algorithm>
|
||||||
|
#include<queue>
|
||||||
|
#include<iostream>
|
||||||
|
#define N 300
|
||||||
|
using namespace std;
|
||||||
|
typedef struct node
|
||||||
|
{
|
||||||
|
int x,y;
|
||||||
|
int time;
|
||||||
|
friend bool operator<(node n1,node n2)
|
||||||
|
{
|
||||||
|
return n2.time<n1.time;
|
||||||
|
}
|
||||||
|
}node;
|
||||||
|
int map[N][N];
|
||||||
|
int dir[4][2]={{1,0},{-1,0},{0,1},{0,-1}};
|
||||||
|
int n,m;
|
||||||
|
int x1,x2,y1,y2;
|
||||||
|
int judge(int x,int y)
|
||||||
|
{
|
||||||
|
if(x<0||x>=m||y<0||y>=n||map[y][x]==-1)
|
||||||
|
return 1;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
int bfs()
|
||||||
|
{
|
||||||
|
priority_queue<node>Q;
|
||||||
|
while(!Q.empty())
|
||||||
|
Q.pop();
|
||||||
|
node fir,nex;
|
||||||
|
fir.x=x1;
|
||||||
|
fir.y=y1;
|
||||||
|
fir.time=0;
|
||||||
|
map[y1][x1]=-1;
|
||||||
|
Q.push(fir);
|
||||||
|
while(!Q.empty())
|
||||||
|
{
|
||||||
|
fir=Q.top();
|
||||||
|
Q.pop();
|
||||||
|
if(fir.x==x2&&fir.y==y2)
|
||||||
|
{
|
||||||
|
return fir.time;
|
||||||
|
}
|
||||||
|
for(int i=0;i<4;i++)
|
||||||
|
{
|
||||||
|
nex.x=fir.x+dir[i][0];
|
||||||
|
nex.y=fir.y+dir[i][1];
|
||||||
|
if(judge(nex.x,nex.y))
|
||||||
|
continue;
|
||||||
|
nex.time=fir.time+map[nex.y][nex.x]+1;
|
||||||
|
map[nex.y][nex.x]=-1;
|
||||||
|
Q.push(nex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
char c[N][N];
|
||||||
|
while(~scanf("%d%d",&n,&m))
|
||||||
|
{
|
||||||
|
for(int i=0;i<n;i++)
|
||||||
|
scanf("%s",c[i]);
|
||||||
|
for(int i=0;i<n;i++)
|
||||||
|
for(int j=0;j<m;j++)
|
||||||
|
{
|
||||||
|
if(c[i][j]=='.')
|
||||||
|
{
|
||||||
|
map[i][j]=0;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if(c[i][j]=='#')
|
||||||
|
{
|
||||||
|
map[i][j]=-1;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if(c[i][j]=='x')
|
||||||
|
{
|
||||||
|
map[i][j]=1;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if(c[i][j]=='r')
|
||||||
|
{
|
||||||
|
map[i][j]=0;
|
||||||
|
x1=j,y1=i;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if(c[i][j]=='a')
|
||||||
|
{
|
||||||
|
map[i][j]=0;
|
||||||
|
x2=j,y2=i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
int step=bfs();
|
||||||
|
if(step!=-1)
|
||||||
|
printf("%d\n",step);
|
||||||
|
else
|
||||||
|
printf("Poor ANGEL has to stay in the prison all his life.\n");
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
40
HDOJ/1243_autoAC.cpp
Normal file
40
HDOJ/1243_autoAC.cpp
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <iostream>
|
||||||
|
#include <algorithm>
|
||||||
|
using namespace std;
|
||||||
|
int ha[30],dp[2100][2100];
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int n,i,j,carry,len1,len2,k,sji;
|
||||||
|
char s1[50],s2[2010],s3[2010];
|
||||||
|
while(~scanf("%d",&n))
|
||||||
|
{
|
||||||
|
scanf("%s",s1);
|
||||||
|
for(i=0;i<n;i++)
|
||||||
|
{
|
||||||
|
scanf("%d",&carry);
|
||||||
|
ha[s1[i]-'a']=carry;
|
||||||
|
}
|
||||||
|
scanf("%s %s",s2,s3);
|
||||||
|
len1=strlen(s2);
|
||||||
|
len2=strlen(s3);
|
||||||
|
memset(dp,0,sizeof(dp));
|
||||||
|
for(i=1;i<=len2;i++)
|
||||||
|
{
|
||||||
|
for(j=1;j<=len1;j++)
|
||||||
|
{
|
||||||
|
if(s3[i-1] == s2[j-1])
|
||||||
|
{
|
||||||
|
dp[i][j]=max(dp[i][j-1],dp[i-1][j-1]+ha[s3[i-1]-'a']);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
dp[i][j]=max(dp[i][j-1],dp[i-1][j]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
printf("%d\n",dp[len2][len1]);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
53
HDOJ/1244_autoAC.cpp
Normal file
53
HDOJ/1244_autoAC.cpp
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
#include<stdio.h>
|
||||||
|
#include<string.h>
|
||||||
|
int dp[1005][1005];
|
||||||
|
int main ()
|
||||||
|
{
|
||||||
|
int fw[1005][2],l[1005],num[1005];
|
||||||
|
int i,j,k,s,n,m;
|
||||||
|
while(~scanf("%d",&n)&&n)
|
||||||
|
{
|
||||||
|
scanf("%d",&m);
|
||||||
|
for(s=0,i=1;i<=m;i++)
|
||||||
|
{
|
||||||
|
scanf("%d",&l[i]);
|
||||||
|
fw[i][0]=s+1;
|
||||||
|
s+=l[i];
|
||||||
|
}
|
||||||
|
for(s=0,i=m;i>=1;i--)
|
||||||
|
{
|
||||||
|
fw[i][1]=n-s;
|
||||||
|
s+=l[i];
|
||||||
|
}
|
||||||
|
for(i=1;i<=n;i++)
|
||||||
|
scanf("%d",&num[i]);
|
||||||
|
memset(dp,0,sizeof(dp));
|
||||||
|
for(i=1;i<=m;i++)
|
||||||
|
{
|
||||||
|
s=0;
|
||||||
|
for(j=fw[i][0];j<=fw[i][1];j++)
|
||||||
|
{
|
||||||
|
if(j-fw[i][0]+1<=l[i])
|
||||||
|
{
|
||||||
|
s+=num[j];
|
||||||
|
if(j-fw[i][0]+1==l[i])
|
||||||
|
{
|
||||||
|
if(dp[i][j]<s+dp[i-1][j-l[i]])
|
||||||
|
for(k=j;k<=n;k++)
|
||||||
|
dp[i][k]=dp[i-1][j-l[i]]+s;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
s+=num[j];
|
||||||
|
s-=num[j-l[i]];
|
||||||
|
if(dp[i][j]<s+dp[i-1][j-l[i]])
|
||||||
|
for(k=j;k<=n;k++)
|
||||||
|
dp[i][k]=dp[i-1][j-l[i]]+s;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
printf("%d\n",dp[m][n]);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
94
HDOJ/1245_autoAC.cpp
Normal file
94
HDOJ/1245_autoAC.cpp
Normal file
|
@ -0,0 +1,94 @@
|
||||||
|
#include<stdio.h>
|
||||||
|
#include<math.h>
|
||||||
|
#include<queue>
|
||||||
|
using namespace std;
|
||||||
|
const int MAXN=110;
|
||||||
|
const double MAXNUM=1e8;
|
||||||
|
int n,step[MAXN];
|
||||||
|
double x[MAXN],y[MAXN];
|
||||||
|
double d,dis[MAXN],map[MAXN][MAXN];
|
||||||
|
bool mark[MAXN];
|
||||||
|
double dist(int i,int j)
|
||||||
|
{
|
||||||
|
double X=(x[i]-x[j])*(x[i]-x[j]);
|
||||||
|
double Y=(y[i]-y[j])*(y[i]-y[j]);
|
||||||
|
return sqrt(X+Y);
|
||||||
|
}
|
||||||
|
void SPFA()
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
queue<int> q;
|
||||||
|
for(i=1;i<=n+1;i++)
|
||||||
|
{
|
||||||
|
dis[i]=MAXNUM;
|
||||||
|
mark[i]=0;
|
||||||
|
}
|
||||||
|
step[0]=0;
|
||||||
|
dis[0]=0.0;
|
||||||
|
q.push(0);
|
||||||
|
mark[0]=1;
|
||||||
|
while(!q.empty())
|
||||||
|
{
|
||||||
|
int s=q.front();
|
||||||
|
q.pop();
|
||||||
|
mark[s]=0;
|
||||||
|
for(i=1;i<=n+1;i++)
|
||||||
|
{
|
||||||
|
if(map[s][i]<=d&&map[s][i]+dis[s]<dis[i])
|
||||||
|
{
|
||||||
|
dis[i]=map[s][i]+dis[s];
|
||||||
|
step[i]=step[s]+1;
|
||||||
|
if(!mark[i])
|
||||||
|
q.push(i);
|
||||||
|
}
|
||||||
|
else if(map[s][i]<=d&&dis[i]==map[s][i]+dis[s])
|
||||||
|
{
|
||||||
|
if(step[i]>step[s]+1)
|
||||||
|
{
|
||||||
|
step[i]=step[s]+1;
|
||||||
|
if(!mark[i])
|
||||||
|
q.push(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
while(scanf("%d%lf",&n,&d)==2)
|
||||||
|
{
|
||||||
|
int i,j;
|
||||||
|
x[0]=y[0]=0;
|
||||||
|
for(i=1;i<=n;i++)
|
||||||
|
scanf("%lf%lf",x+i,y+i);
|
||||||
|
if(d>=42.50)
|
||||||
|
{
|
||||||
|
puts("42.50 1");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
for(i=1;i<=n;i++)
|
||||||
|
{
|
||||||
|
map[i][i]=MAXNUM;
|
||||||
|
for(j=i+1;j<=n;j++)
|
||||||
|
map[i][j]=map[j][i]=dist(i,j);
|
||||||
|
}
|
||||||
|
for(i=1;i<=n;i++)
|
||||||
|
{
|
||||||
|
map[i][0]=0.0;
|
||||||
|
map[0][i]=sqrt(x[i]*x[i]+y[i]*y[i])-7.5;
|
||||||
|
}
|
||||||
|
for(i=1;i<=n;i++)
|
||||||
|
{
|
||||||
|
map[n+1][i]=0.0;
|
||||||
|
if(50.00-fabs(x[i])>50.00-fabs(y[i]))
|
||||||
|
map[i][n+1]=50.00-fabs(y[i]);
|
||||||
|
else map[i][n+1]=50.00-fabs(x[i]);
|
||||||
|
}
|
||||||
|
map[0][n+1]=MAXNUM;
|
||||||
|
SPFA();
|
||||||
|
if(dis[n+1]==MAXNUM)
|
||||||
|
puts("can't be saved");
|
||||||
|
else printf("%.2lf %d\n",dis[n+1],step[n+1]);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
21
HDOJ/1246_autoAC.cpp
Normal file
21
HDOJ/1246_autoAC.cpp
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
#include<iostream>
|
||||||
|
#include<cstdio>
|
||||||
|
#include<cstring>
|
||||||
|
using namespace std;
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int i,a[310]={1,1},n,j;
|
||||||
|
for(i=3;i<310;i+=2)
|
||||||
|
{
|
||||||
|
for(j=310;j>=0;j--)
|
||||||
|
{
|
||||||
|
if(i+j<=310)
|
||||||
|
a[i+j]+=a[j];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
while(cin>>n)
|
||||||
|
{
|
||||||
|
cout<<a[n]<<endl;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
60
HDOJ/1247_autoAC.cpp
Normal file
60
HDOJ/1247_autoAC.cpp
Normal file
|
@ -0,0 +1,60 @@
|
||||||
|
#include<iostream>
|
||||||
|
#include<cstring>
|
||||||
|
using namespace std;
|
||||||
|
char a[50010][123];
|
||||||
|
struct node{
|
||||||
|
bool p;
|
||||||
|
node *next[26];
|
||||||
|
node(){
|
||||||
|
memset(next,NULL,sizeof(next));
|
||||||
|
p=0;
|
||||||
|
}
|
||||||
|
}*head;
|
||||||
|
void insert(char *c){
|
||||||
|
int i=0;
|
||||||
|
node *p=head;
|
||||||
|
while(c[i]){
|
||||||
|
if(p->next[c[i]-'a']==NULL)
|
||||||
|
p->next[c[i]-'a']=new node;
|
||||||
|
p=p->next[c[i]-'a'];
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
p->p=true;
|
||||||
|
}
|
||||||
|
bool search(char *c){
|
||||||
|
node *p=head,*s;
|
||||||
|
int i,j,l=strlen(c),o;
|
||||||
|
char k;
|
||||||
|
for(i=0;i<l;i++){
|
||||||
|
k=c[i]-'a';
|
||||||
|
if(p->next[k]){
|
||||||
|
p=p->next[k];
|
||||||
|
if(p->p==true){
|
||||||
|
s=head;o=1;
|
||||||
|
for(j=i+1;j<l;j++){
|
||||||
|
k=c[j]-'a';
|
||||||
|
if(s->next[k])
|
||||||
|
s=s->next[k];
|
||||||
|
else{
|
||||||
|
o=0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(o){
|
||||||
|
if(s->p)
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
int main(){
|
||||||
|
int i,j,n=0;
|
||||||
|
head=new node;
|
||||||
|
while(~scanf("%s",a[n++]))
|
||||||
|
insert(a[n-1]);
|
||||||
|
for(i=0;i<n;i++)
|
||||||
|
if(search(a[i]))
|
||||||
|
printf("%s\n",a[i]);
|
||||||
|
}
|
26
HDOJ/1248_autoAC.cpp
Normal file
26
HDOJ/1248_autoAC.cpp
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
#include<iostream>
|
||||||
|
using namespace std;
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int t;
|
||||||
|
cin>>t;
|
||||||
|
while(t--)
|
||||||
|
{
|
||||||
|
int temp;
|
||||||
|
cin>>temp;
|
||||||
|
int m1=temp/150;
|
||||||
|
int m2=temp/200;
|
||||||
|
int m3=temp/350;
|
||||||
|
int sum=temp;
|
||||||
|
for(int i=0;i<=m1;++i)
|
||||||
|
for(int j=0;j<=m2;++j)
|
||||||
|
for(int k=0;k<=m3;++k)
|
||||||
|
{
|
||||||
|
int sum1=temp-150*i-200*j-350*k;
|
||||||
|
if(sum1<sum&&sum1>=0)
|
||||||
|
sum=sum1;
|
||||||
|
}
|
||||||
|
cout<<sum<<endl;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
13
HDOJ/1249_autoAC.cpp
Normal file
13
HDOJ/1249_autoAC.cpp
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
#include<stdio.h>
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int n,s=2,i,m;
|
||||||
|
scanf("%d",&n);
|
||||||
|
while(n--)
|
||||||
|
{
|
||||||
|
scanf("%d",&m);
|
||||||
|
s+=6*(m-1);
|
||||||
|
printf("%d\n",s);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
44
HDOJ/1250_autoAC.cpp
Normal file
44
HDOJ/1250_autoAC.cpp
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
#include<iostream>
|
||||||
|
#include<cstring>
|
||||||
|
using namespace std;
|
||||||
|
short x[5][2008];
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int n,i,j;
|
||||||
|
while(cin>>n)
|
||||||
|
{
|
||||||
|
if(n<=4)
|
||||||
|
{
|
||||||
|
cout<<1<<endl;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
memset(x,0,sizeof(x));
|
||||||
|
x[1][0]=1;
|
||||||
|
x[2][0]=1;
|
||||||
|
x[3][0]=1;
|
||||||
|
x[4][0]=1;
|
||||||
|
for(i=5;i<=n;++i)
|
||||||
|
{
|
||||||
|
memset(x[i%5],0,sizeof(x[i%5]));
|
||||||
|
for(j=0;j<=2005;++j)
|
||||||
|
{
|
||||||
|
x[i%5][j]+=x[(i-1)%5][j]+x[(i-2)%5][j]+x[(i-3)%5][j]+x[(i-4)%5][j];
|
||||||
|
if(x[i%5][j]>=10)
|
||||||
|
{
|
||||||
|
x[i%5][j+1]+=x[i%5][j]/10;
|
||||||
|
x[i%5][j]%=10;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
i=2005;
|
||||||
|
while(x[n%5][i]==0)
|
||||||
|
--i;
|
||||||
|
while(i>=0)
|
||||||
|
{
|
||||||
|
cout<<x[n%5][i];
|
||||||
|
--i;
|
||||||
|
}
|
||||||
|
cout<<endl;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
27
HDOJ/1251_autoAC.cpp
Normal file
27
HDOJ/1251_autoAC.cpp
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
#include<stdio.h>
|
||||||
|
#include<string.h>
|
||||||
|
char str[28][11111][11];
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
char s[11],tem[11];
|
||||||
|
int i=0,j,num[28];
|
||||||
|
int count;
|
||||||
|
int len;
|
||||||
|
memset(num,0,sizeof(num));
|
||||||
|
while(gets(tem)&&strcmp(tem,"")!=0)
|
||||||
|
{
|
||||||
|
int r=tem[0]-96; strcpy(str[r][num[r]++] , tem);
|
||||||
|
}
|
||||||
|
while(scanf("%s",s)!=EOF)
|
||||||
|
{
|
||||||
|
count=0;int r=s[0]-96;
|
||||||
|
len=strlen(s);
|
||||||
|
for(j=0;j<num[r];j++)
|
||||||
|
{
|
||||||
|
if(memcmp(str[r][j],s,len)==0)
|
||||||
|
count++;
|
||||||
|
}
|
||||||
|
printf("%d\n",count);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
90
HDOJ/1252_autoAC.cpp
Normal file
90
HDOJ/1252_autoAC.cpp
Normal file
|
@ -0,0 +1,90 @@
|
||||||
|
#include<iostream>
|
||||||
|
#include<cstdio>
|
||||||
|
#include<cstring>
|
||||||
|
#include<algorithm>
|
||||||
|
#include<queue>
|
||||||
|
using namespace std;
|
||||||
|
int n,ok,p1,p2,p3;
|
||||||
|
int ans[51][51][51];
|
||||||
|
char map[51][51];
|
||||||
|
struct Hike{
|
||||||
|
char a,b,c;
|
||||||
|
};
|
||||||
|
void bfs()
|
||||||
|
{
|
||||||
|
int i,a,b,c;
|
||||||
|
queue<Hike>Q;
|
||||||
|
Hike tmp;
|
||||||
|
ans[p1][p2][p3] = 0;
|
||||||
|
tmp.a = p1;
|
||||||
|
tmp.b = p2;
|
||||||
|
tmp.c = p3;
|
||||||
|
Q.push(tmp);
|
||||||
|
while(!Q.empty())
|
||||||
|
{
|
||||||
|
tmp = Q.front(); Q.pop();
|
||||||
|
a = tmp.a; b = tmp.b; c = tmp.c;
|
||||||
|
if((a == b) && (a == c))
|
||||||
|
{
|
||||||
|
ok = a; break;
|
||||||
|
}
|
||||||
|
int current = ans[a][b][c];
|
||||||
|
current ++;
|
||||||
|
char *color ;
|
||||||
|
char bcColor = map[b][c];
|
||||||
|
color = map[a]+1;
|
||||||
|
for(i=1;i<=n;i++,color++)
|
||||||
|
{
|
||||||
|
if(i != a && *color == bcColor && ans[i][b][c] > current)
|
||||||
|
{
|
||||||
|
ans[i][b][c] = current;
|
||||||
|
tmp.a = i; tmp.b = b; tmp.c = c;
|
||||||
|
Q.push(tmp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
char acColor = map[a][c];
|
||||||
|
color = map[b] + 1;
|
||||||
|
for(i=1;i<=n;i++,color++)
|
||||||
|
{
|
||||||
|
if(i != b && *color == acColor && ans[a][i][c] > current)
|
||||||
|
{
|
||||||
|
ans[a][i][c] = current;
|
||||||
|
tmp.a = a; tmp.b = i; tmp.c = c;
|
||||||
|
Q.push(tmp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
char abColor = map[a][b];
|
||||||
|
color = map[c] + 1;
|
||||||
|
for(i=1;i<=n;i++,color++)
|
||||||
|
{
|
||||||
|
if(i != c && *color == abColor && ans[a][b][i] > current)
|
||||||
|
{
|
||||||
|
ans[a][b][i] = current;
|
||||||
|
tmp.a = a; tmp.b = b; tmp.c = i;
|
||||||
|
Q.push(tmp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int i,j;
|
||||||
|
char str[110];
|
||||||
|
while(scanf("%d",&n)!=EOF && n)
|
||||||
|
{
|
||||||
|
scanf("%d%d%d\n",&p1,&p2,&p3);
|
||||||
|
for(i=1;i<=n;i++)
|
||||||
|
{
|
||||||
|
gets(str);
|
||||||
|
for(j=0;j<n;j++)
|
||||||
|
sscanf(str+2*j,"%c",&map[i][j+1]);
|
||||||
|
map[i][n+1] = '\0';
|
||||||
|
}
|
||||||
|
ok = 0;
|
||||||
|
fill(&ans[0][0][0],&ans[0][0][0]+51*51*51,255);
|
||||||
|
bfs();
|
||||||
|
if(ok) printf("%d\n",ans[ok][ok][ok]);
|
||||||
|
else printf("impossible\n");
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
65
HDOJ/1253_autoAC.cpp
Normal file
65
HDOJ/1253_autoAC.cpp
Normal file
|
@ -0,0 +1,65 @@
|
||||||
|
#include <iostream>
|
||||||
|
#include <vector>
|
||||||
|
#include <string>
|
||||||
|
#include <queue>
|
||||||
|
#include <algorithm>
|
||||||
|
#include <cmath>
|
||||||
|
#include <ctime>
|
||||||
|
#include <cstdio>
|
||||||
|
#include <sstream>
|
||||||
|
#include <deque>
|
||||||
|
#include <functional>
|
||||||
|
#include <iterator>
|
||||||
|
#include <list>
|
||||||
|
#include <map>
|
||||||
|
#include <memory>
|
||||||
|
#include <stack>
|
||||||
|
#include <set>
|
||||||
|
#include <numeric>
|
||||||
|
#include <utility>
|
||||||
|
#include <cstring>
|
||||||
|
using namespace std;
|
||||||
|
int A, B, C, T;
|
||||||
|
struct point {
|
||||||
|
int x, y, z;
|
||||||
|
int t;
|
||||||
|
point(int x=0, int y=0, int z=0, int t=0): x(x), y(y), z(z), t(t) {}
|
||||||
|
};
|
||||||
|
int direct[][3] = {{1,0,0}, {-1,0,0}, {0,0,1}, {0,0,-1}, {0,1,0}, {0,-1,0}};
|
||||||
|
int Map[55][55][55];
|
||||||
|
int BFS() {
|
||||||
|
queue<point> que;
|
||||||
|
que.push(point(0,0,0,0));
|
||||||
|
while(que.size()) {
|
||||||
|
point p = que.front();
|
||||||
|
que.pop();
|
||||||
|
if(p.t > T)
|
||||||
|
continue;
|
||||||
|
if(p.x == A-1 && p.y == B-1 && p.z == C-1)
|
||||||
|
return p.t;
|
||||||
|
for(int k=0; k<6; ++k) {
|
||||||
|
int nx = p.x + direct[k][0];
|
||||||
|
int ny = p.y + direct[k][1];
|
||||||
|
int nz = p.z + direct[k][2];
|
||||||
|
if(nx >=0 && nx<A && ny>=0 && ny<B && nz>=0 && nz<C && Map[nx][ny][nz] == 0) {
|
||||||
|
que.push(point(nx, ny, nz, p.t+1));
|
||||||
|
Map[nx][ny][nz] = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return - 1;
|
||||||
|
}
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int K;
|
||||||
|
scanf("%d", &K);
|
||||||
|
while(K--) {
|
||||||
|
scanf("%d%d%d%d", &A, &B, &C, &T);
|
||||||
|
for(int a=0; a<A; ++a)
|
||||||
|
for(int b=0; b<B; ++b)
|
||||||
|
for(int c=0; c<C; ++c)
|
||||||
|
scanf("%d", &Map[a][b][c]);
|
||||||
|
printf("%d\n", BFS());
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
106
HDOJ/1254_autoAC.cpp
Normal file
106
HDOJ/1254_autoAC.cpp
Normal file
|
@ -0,0 +1,106 @@
|
||||||
|
#include<cstdio>
|
||||||
|
#include<cstring>
|
||||||
|
#include<string>
|
||||||
|
#include<queue>
|
||||||
|
#include<algorithm>
|
||||||
|
#include<queue>
|
||||||
|
#include<map>
|
||||||
|
#include<stack>
|
||||||
|
#include<iostream>
|
||||||
|
#include<list>
|
||||||
|
#include<set>
|
||||||
|
#include<cmath>
|
||||||
|
#define INF 0x7fffffff
|
||||||
|
#define eps 1e-6
|
||||||
|
using namespace std;
|
||||||
|
int g[8][8];
|
||||||
|
int xx[]={1,-1,0,0};
|
||||||
|
int yy[]={0,0,-1,1};
|
||||||
|
int n,m;
|
||||||
|
struct node
|
||||||
|
{
|
||||||
|
int x,y,lv;
|
||||||
|
};
|
||||||
|
node box,man,over;
|
||||||
|
bool vis[8][8];
|
||||||
|
bool ok;
|
||||||
|
void dfs(int x1,int y1,int x2,int y2)
|
||||||
|
{
|
||||||
|
if(ok)return;
|
||||||
|
if(x1==x2&&y1==y2)
|
||||||
|
{
|
||||||
|
ok=1;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
int x,y;
|
||||||
|
for(int k=0;k<4;k++)
|
||||||
|
{
|
||||||
|
x=x1+xx[k];
|
||||||
|
y=y1+yy[k];
|
||||||
|
if(x>=n||x<0||y>=m||y<0||g[x][y]==1||vis[x][y])
|
||||||
|
continue;
|
||||||
|
vis[x][y]=1;
|
||||||
|
dfs(x,y,x2,y2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
int bfs()
|
||||||
|
{
|
||||||
|
bool way[8][8][8][8];
|
||||||
|
queue<node>q;
|
||||||
|
queue<node>human;
|
||||||
|
memset(way,0,sizeof(way));
|
||||||
|
q.push(box);
|
||||||
|
human.push(man);
|
||||||
|
way[box.x][box.y][man.x][man.y]=1;
|
||||||
|
node tmp,now,ma;
|
||||||
|
while(!q.empty())
|
||||||
|
{
|
||||||
|
tmp=q.front();q.pop();
|
||||||
|
ma=human.front();human.pop();
|
||||||
|
if(tmp.x==over.x&&tmp.y==over.y)return tmp.lv;
|
||||||
|
for(int k=0;k<4;k++)
|
||||||
|
{
|
||||||
|
int x=tmp.x+xx[k];
|
||||||
|
int y=tmp.y+yy[k];
|
||||||
|
if(x>=n||x<0||y>=m||y<0||g[x][y]==1||way[x][y][tmp.x][tmp.y])
|
||||||
|
continue;
|
||||||
|
int rex=tmp.x-xx[k];
|
||||||
|
int rey=tmp.y-yy[k];
|
||||||
|
if(rex>=n||rex<0||rey>=m||rey<0||g[rex][rey]==1)
|
||||||
|
continue;
|
||||||
|
memset(vis,0,sizeof(vis));
|
||||||
|
ok=0;
|
||||||
|
vis[tmp.x][tmp.y]=1;
|
||||||
|
dfs(ma.x,ma.y,rex,rey);
|
||||||
|
if(!ok)
|
||||||
|
continue;
|
||||||
|
now.x=x,now.y=y,now.lv=tmp.lv+1;
|
||||||
|
way[x][y][tmp.x][tmp.y]=1;
|
||||||
|
q.push(now);
|
||||||
|
human.push(tmp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int t;
|
||||||
|
scanf("%d",&t);
|
||||||
|
while(t--)
|
||||||
|
{
|
||||||
|
scanf("%d%d",&n,&m);
|
||||||
|
for(int i=0;i<n;i++)
|
||||||
|
for(int j=0;j<m;j++)
|
||||||
|
{
|
||||||
|
scanf("%d",&g[i][j]);
|
||||||
|
if(g[i][j]==2)
|
||||||
|
box.x=i,box.y=j,box.lv=0;
|
||||||
|
else if(g[i][j]==3)
|
||||||
|
over.x=i,over.y=j;
|
||||||
|
else if(g[i][j]==4)
|
||||||
|
man.x=i,man.y=j;
|
||||||
|
}
|
||||||
|
int tmp=bfs();
|
||||||
|
printf("%d\n",tmp);
|
||||||
|
}
|
||||||
|
}
|
91
HDOJ/1255_autoAC.cpp
Normal file
91
HDOJ/1255_autoAC.cpp
Normal file
|
@ -0,0 +1,91 @@
|
||||||
|
#include<iostream>
|
||||||
|
#include<cstdio>
|
||||||
|
#include<algorithm>
|
||||||
|
using namespace std;
|
||||||
|
const int MAXN=1003;
|
||||||
|
double y[2*MAXN];
|
||||||
|
struct Line
|
||||||
|
{
|
||||||
|
double x;
|
||||||
|
double up,down;
|
||||||
|
int mark;
|
||||||
|
bool operator <(const Line a)const
|
||||||
|
{
|
||||||
|
return x<a.x;
|
||||||
|
}
|
||||||
|
}L[2*MAXN];
|
||||||
|
struct node
|
||||||
|
{
|
||||||
|
double x;
|
||||||
|
double up,down;
|
||||||
|
int cover;
|
||||||
|
bool isLeaf;
|
||||||
|
}T[20*MAXN];
|
||||||
|
void build(int k,int left,int right)
|
||||||
|
{
|
||||||
|
T[k].x=-1;
|
||||||
|
T[k].down=y[left];
|
||||||
|
T[k].up=y[right];
|
||||||
|
T[k].cover=0;
|
||||||
|
if(left+1==right)
|
||||||
|
{
|
||||||
|
T[k].isLeaf=true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
T[k].isLeaf=false;
|
||||||
|
int mid=(left+right)/2;
|
||||||
|
build(2*k+1,left,mid);
|
||||||
|
build(2*k+2,mid,right);
|
||||||
|
}
|
||||||
|
double insert(int k,double x,double down,double up,int mark)
|
||||||
|
{
|
||||||
|
if(T[k].down>=up||T[k].up<=down)
|
||||||
|
return 0;
|
||||||
|
if(T[k].isLeaf)
|
||||||
|
{
|
||||||
|
double s=0;
|
||||||
|
if(T[k].cover>1)
|
||||||
|
{
|
||||||
|
double xx=T[k].x;
|
||||||
|
s=(x-xx)*(T[k].up-T[k].down);
|
||||||
|
}
|
||||||
|
T[k].x=x;
|
||||||
|
T[k].cover+=mark;
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
double s1=insert(2*k+1,x,down,up,mark);
|
||||||
|
double s2=insert(2*k+2,x,down,up,mark);
|
||||||
|
return s1+s2;
|
||||||
|
}
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int T,N;
|
||||||
|
double area,x1,x2,y1,y2;
|
||||||
|
scanf("%d",&T);
|
||||||
|
while(T--)
|
||||||
|
{
|
||||||
|
area=0;
|
||||||
|
scanf("%d",&N);
|
||||||
|
for(int i=0,num=-1;i<N;++i)
|
||||||
|
{
|
||||||
|
scanf("%lf%lf%lf%lf",&x1,&y1,&x2,&y2);
|
||||||
|
L[++num].x=x1;
|
||||||
|
L[num].down=y1;
|
||||||
|
L[num].up=y2;
|
||||||
|
L[num].mark=1;
|
||||||
|
y[num]=y1;
|
||||||
|
L[++num].x=x2;
|
||||||
|
L[num].down=y1;
|
||||||
|
L[num].up=y2;
|
||||||
|
L[num].mark=-1;
|
||||||
|
y[num]=y2;
|
||||||
|
}
|
||||||
|
sort(L,L+2*N);
|
||||||
|
sort(y,y+2*N);
|
||||||
|
build(0,0,2*N-1);
|
||||||
|
for(int i=0;i<2*N;++i)
|
||||||
|
area+=insert(0,L[i].x,L[i].down,L[i].up,L[i].mark);
|
||||||
|
printf("%.2f\n",area);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
41
HDOJ/1256_autoAC.cpp
Normal file
41
HDOJ/1256_autoAC.cpp
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
#include<stdio.h>
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int T,n,a,b,i,j,g=0;
|
||||||
|
char _char;
|
||||||
|
scanf("%d",&T);
|
||||||
|
while(T--)
|
||||||
|
{
|
||||||
|
if(g!=0)printf("\n");
|
||||||
|
g=1;
|
||||||
|
getchar();
|
||||||
|
_char=getchar();
|
||||||
|
scanf("%d",&n);
|
||||||
|
a=(n/6)+1 ;
|
||||||
|
b=(n-3)/2 ;
|
||||||
|
for(i=1;i<=n;i++)
|
||||||
|
{
|
||||||
|
for(j=1 ; j<=2*a+n-3-b ; j++)
|
||||||
|
{
|
||||||
|
if(i==1||i==(2+b)||i==n)
|
||||||
|
{
|
||||||
|
if(j==a-b+n-2)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if(j<a+1) putchar(' ');
|
||||||
|
else
|
||||||
|
putchar(_char);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(j>a&&j<a-b+n-2)
|
||||||
|
putchar(' ');
|
||||||
|
else putchar(_char);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
printf("\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
29
HDOJ/1257_autoAC.cpp
Normal file
29
HDOJ/1257_autoAC.cpp
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
#include<stdio.h>
|
||||||
|
#include<string.h>
|
||||||
|
int a[1000008],b[1000008];
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int n,i,k,j;
|
||||||
|
while(scanf("%d",&n)==1)
|
||||||
|
{
|
||||||
|
k=0;
|
||||||
|
scanf("%d",&a[0]);
|
||||||
|
b[k]=a[0];
|
||||||
|
for(i=1;i<n;i++)
|
||||||
|
{
|
||||||
|
scanf("%d",&a[i]);
|
||||||
|
for(j=0;j<=k;j++)
|
||||||
|
if(b[j]>a[i])
|
||||||
|
{
|
||||||
|
b[j]=a[i];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if(j>k)
|
||||||
|
{
|
||||||
|
b[++k]=a[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
printf("%d\n",k+1);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
68
HDOJ/1258_autoAC.cpp
Normal file
68
HDOJ/1258_autoAC.cpp
Normal file
|
@ -0,0 +1,68 @@
|
||||||
|
#include<iostream>
|
||||||
|
#include<stdio.h>
|
||||||
|
#include<string.h>
|
||||||
|
using namespace std;
|
||||||
|
int g[14][14];
|
||||||
|
int visited[14];
|
||||||
|
int vec[14];
|
||||||
|
int t,n;
|
||||||
|
int path[14];
|
||||||
|
int rear;
|
||||||
|
int flag;
|
||||||
|
void DFS(int start,int sum)
|
||||||
|
{
|
||||||
|
int j;
|
||||||
|
visited[start]=1;
|
||||||
|
path[rear]=vec[start];
|
||||||
|
if(sum>t)return ;
|
||||||
|
if(sum==t)
|
||||||
|
{
|
||||||
|
flag=1;
|
||||||
|
for(j=0;j<rear;j++)
|
||||||
|
cout<<path[j]<<"+";
|
||||||
|
cout<<path[j]<<endl;
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
for(j=start+1;j<=n;j++)
|
||||||
|
{
|
||||||
|
if(j!=start&&0==visited[j])
|
||||||
|
{
|
||||||
|
sum+=vec[j];
|
||||||
|
rear++;
|
||||||
|
DFS(j,sum);
|
||||||
|
sum-=vec[j];
|
||||||
|
rear--;
|
||||||
|
visited[j]=0;
|
||||||
|
}
|
||||||
|
while(j+1<=n&&vec[j]==vec[j+1])
|
||||||
|
j++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int i,j,w;
|
||||||
|
while(cin>>t>>n&&!(0==t&&0==n))
|
||||||
|
{
|
||||||
|
for(i=1;i<=n;i++)
|
||||||
|
{
|
||||||
|
cin>>w;
|
||||||
|
vec[i]=w;
|
||||||
|
for(j=1;j<=n;j++)
|
||||||
|
g[i][j]=w;
|
||||||
|
}
|
||||||
|
i=1;
|
||||||
|
cout<<"Sums of "<<t<<":"<<endl;
|
||||||
|
flag=0;
|
||||||
|
for(i=1;i<=n;i++)
|
||||||
|
{
|
||||||
|
rear=0;
|
||||||
|
memset(visited,0,sizeof(visited));
|
||||||
|
DFS(i,vec[i]);
|
||||||
|
while(i+1<=n&&vec[i]==vec[i+1])
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
if(flag==0)
|
||||||
|
cout<<"NONE"<<endl;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
21
HDOJ/1259_autoAC.cpp
Normal file
21
HDOJ/1259_autoAC.cpp
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
#include <stdio.h>
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int n,i,t1,t2;
|
||||||
|
scanf("%d",&n);
|
||||||
|
while(n--)
|
||||||
|
{
|
||||||
|
int sum=2;
|
||||||
|
int m;
|
||||||
|
scanf("%d",&m);
|
||||||
|
for(i=1;i<=m;i++)
|
||||||
|
{
|
||||||
|
scanf("%d%d",&t1,&t2);
|
||||||
|
if(t2==sum)
|
||||||
|
sum=t1;
|
||||||
|
else if(t1==sum)
|
||||||
|
sum=t2;
|
||||||
|
}
|
||||||
|
printf("%d\n",sum);
|
||||||
|
}
|
||||||
|
}
|
46
HDOJ/1260_autoAC.cpp
Normal file
46
HDOJ/1260_autoAC.cpp
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
#include<stdio.h>
|
||||||
|
#include<string.h>
|
||||||
|
int minn(int x,int y)
|
||||||
|
{
|
||||||
|
return x<y?x:y;
|
||||||
|
}
|
||||||
|
int main ()
|
||||||
|
{
|
||||||
|
int dp[2005];
|
||||||
|
int a1[2005];
|
||||||
|
int a2[2005];
|
||||||
|
int i,n,t,j;
|
||||||
|
int a,b,c;
|
||||||
|
char c1,c2;
|
||||||
|
scanf("%d",&t);
|
||||||
|
while(t--)
|
||||||
|
{
|
||||||
|
scanf("%d",&n);
|
||||||
|
for(i=1;i<=n;i++)
|
||||||
|
scanf("%d",&a1[i]);
|
||||||
|
for(i=1;i<n;i++)
|
||||||
|
scanf("%d",&a2[i]);
|
||||||
|
memset(dp,0,sizeof(dp));
|
||||||
|
dp[1]=a1[1];
|
||||||
|
for(i=2;i<=n;i++)
|
||||||
|
dp[i]=minn(dp[i-1]+a1[i],dp[i-2]+a2[i-1]);
|
||||||
|
a=8,b=c=0;
|
||||||
|
c=dp[n]%60;
|
||||||
|
b=dp[n]/60%60;
|
||||||
|
a+=(dp[n]/3600);
|
||||||
|
if(a<12||a==12&&b==c&&c==0)
|
||||||
|
{
|
||||||
|
c1='a';
|
||||||
|
c2='m';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(a!=12)
|
||||||
|
a%=12;
|
||||||
|
c1='p';
|
||||||
|
c2='m';
|
||||||
|
}
|
||||||
|
printf("%02d:%02d:%02d %c%c\n",a,b,c,c1,c2);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
46
HDOJ/1261_autoAC.cpp
Normal file
46
HDOJ/1261_autoAC.cpp
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
#include<iostream>
|
||||||
|
#include<cstring>
|
||||||
|
using namespace std;
|
||||||
|
int a[500];
|
||||||
|
void change(int n,int m)
|
||||||
|
{
|
||||||
|
int c;
|
||||||
|
c=0;
|
||||||
|
for(int j=0;j<500;j++)
|
||||||
|
{
|
||||||
|
c=a[j]*n+c;
|
||||||
|
a[j]=c%10;
|
||||||
|
c=c/10;
|
||||||
|
}
|
||||||
|
c=0;
|
||||||
|
for(int j=499;j>=0;j--)
|
||||||
|
{
|
||||||
|
c=a[j]+c*10;
|
||||||
|
a[j]=c/m;
|
||||||
|
c=c%m;
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int n,s,k;
|
||||||
|
int b[26];
|
||||||
|
while(cin>>n&&n)
|
||||||
|
{
|
||||||
|
s=0;
|
||||||
|
memset(a,0,sizeof(a));
|
||||||
|
a[0]=1;
|
||||||
|
for(int i=0;i<n;i++){
|
||||||
|
cin>>b[i];
|
||||||
|
for(int j=1;j<=b[i];j++)
|
||||||
|
change(s+j,j);
|
||||||
|
s+=b[i];
|
||||||
|
}
|
||||||
|
for(k=499;k>=0;k--)if(a[k]!=0)
|
||||||
|
break;
|
||||||
|
for(int i=k;i>=0;i--)
|
||||||
|
cout<<a[i];
|
||||||
|
cout<<endl;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
30
HDOJ/1262_autoAC.cpp
Normal file
30
HDOJ/1262_autoAC.cpp
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
#include<stdio.h>
|
||||||
|
#include<math.h>
|
||||||
|
#include<stdlib.h>
|
||||||
|
#include<iostream>
|
||||||
|
#include<string.h>
|
||||||
|
using namespace std;
|
||||||
|
#define M 10005
|
||||||
|
char a[M]={1,1,0};
|
||||||
|
void prime()
|
||||||
|
{
|
||||||
|
int i,j;
|
||||||
|
for(i=2;i<M;i++)
|
||||||
|
{
|
||||||
|
if(!a[i])
|
||||||
|
for(j=i+i;j<M;j+=i)
|
||||||
|
a[j]=1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
prime();
|
||||||
|
int n;
|
||||||
|
while(cin>>n)
|
||||||
|
{
|
||||||
|
int i=n/2;
|
||||||
|
while(a[i]+a[n-i])i--;
|
||||||
|
cout<<i<<' '<<n-i<<endl;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
52
HDOJ/1263_autoAC.cpp
Normal file
52
HDOJ/1263_autoAC.cpp
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
#include<string.h>
|
||||||
|
#include<stdio.h>
|
||||||
|
#include<algorithm>
|
||||||
|
#include<iostream>
|
||||||
|
using namespace std;
|
||||||
|
struct node
|
||||||
|
{
|
||||||
|
string friut,place;
|
||||||
|
int num;
|
||||||
|
}f[109];
|
||||||
|
bool cmp(node p,node q)
|
||||||
|
{
|
||||||
|
if(p.place!=q.place)
|
||||||
|
return p.place<q.place;
|
||||||
|
return p.friut<q.friut;
|
||||||
|
}
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int T,n,j,i;
|
||||||
|
scanf("%d",&T);
|
||||||
|
while(T--)
|
||||||
|
{
|
||||||
|
scanf("%d",&n);
|
||||||
|
for(i=1;i<=n;i++)
|
||||||
|
cin>>f[i].friut>>f[i].place>>f[i].num;
|
||||||
|
f[n+1].place="zzzzzzzzzzzz";
|
||||||
|
sort(f+1,f+1+n,cmp);
|
||||||
|
int last=1;
|
||||||
|
for(i=1;i<=n;i++)
|
||||||
|
{
|
||||||
|
if(f[i].place!=f[i+1].place)
|
||||||
|
{
|
||||||
|
cout<<f[i].place<<endl;;
|
||||||
|
int sum=f[last].num;
|
||||||
|
for(j=last+1;j<=i;j++)
|
||||||
|
{
|
||||||
|
if(f[j].friut!=f[j-1].friut)
|
||||||
|
{
|
||||||
|
cout<<" |----"<<f[j-1].friut<<"("<<sum<<")"<<endl;
|
||||||
|
sum=f[j].num;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
sum+=f[j].num;
|
||||||
|
}
|
||||||
|
cout<<" |----"<<f[i].friut<<"("<<sum<<")"<<endl;
|
||||||
|
last=i+1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(T)puts("");
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
49
HDOJ/1264_autoAC.cpp
Normal file
49
HDOJ/1264_autoAC.cpp
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
#define SWAP(a,b){int t=a;a=b;b=t;}
|
||||||
|
int hash[102][102];
|
||||||
|
void HashTable(int x1,int y1,int x2,int y2)
|
||||||
|
{
|
||||||
|
for(int i = x1;i < x2;i++)
|
||||||
|
for(int j = y1;j < y2;j++)
|
||||||
|
hash[i][j] = 1;
|
||||||
|
}
|
||||||
|
int CountHash(int minx,int miny,int maxx,int maxy)
|
||||||
|
{
|
||||||
|
int cnt = 0;
|
||||||
|
for(int i = minx;i < maxx;i++)
|
||||||
|
for(int j = miny;j < maxy;j++)if(hash[i][j])
|
||||||
|
{
|
||||||
|
cnt++;
|
||||||
|
}
|
||||||
|
return cnt;
|
||||||
|
}
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int x1,x2,y1,y2,minx,miny,maxx,maxy;
|
||||||
|
while(scanf("%d%d%d%d",&x1,&y1,&x2,&y2))
|
||||||
|
{
|
||||||
|
memset(hash,0,sizeof(hash));
|
||||||
|
if(x1+x2+y1+y2==-8)break;
|
||||||
|
if(x1+x2+y1+y2==-4){puts("0");continue;}
|
||||||
|
if(x1>x2)SWAP(x1,x2);
|
||||||
|
if(y1>y2)SWAP(y1,y2);
|
||||||
|
minx = x1; miny = y1;
|
||||||
|
maxx = x2; maxy = y2;
|
||||||
|
HashTable(x1,y1,x2,y2);
|
||||||
|
while(scanf("%d%d%d%d",&x1,&y1,&x2,&y2),(x1+x2+y1+y2!=-4&&x1+x2+y1+y2!=-8))
|
||||||
|
{
|
||||||
|
if(x1>x2)SWAP(x1,x2);
|
||||||
|
if(y1>y2)SWAP(y1,y2);
|
||||||
|
if(minx>x1)minx = x1;
|
||||||
|
if(miny>y1)miny = y1;
|
||||||
|
if(maxx<x2)maxx = x2;
|
||||||
|
if(maxy<y2)maxy = y2;
|
||||||
|
HashTable(x1,y1,x2,y2);
|
||||||
|
}
|
||||||
|
int cnt=CountHash(minx,miny,maxx,maxy);
|
||||||
|
printf("%d\n",cnt);
|
||||||
|
if(x1+x2+y1+y2==-8)break;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
18
HDOJ/1265_autoAC.cpp
Normal file
18
HDOJ/1265_autoAC.cpp
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
#include<iostream>
|
||||||
|
#include<cstdio>
|
||||||
|
#include<cstring>
|
||||||
|
#include<cstdlib>
|
||||||
|
using namespace std;
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
char s[20];
|
||||||
|
float d;
|
||||||
|
long x,n;
|
||||||
|
scanf("%d",&n);
|
||||||
|
while(n--){
|
||||||
|
scanf("%f",&d);
|
||||||
|
memcpy(&x,&d,4);
|
||||||
|
printf("%X\n",x);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
36
HDOJ/1266_autoAC.cpp
Normal file
36
HDOJ/1266_autoAC.cpp
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
#include<iostream>
|
||||||
|
#include<string>
|
||||||
|
using namespace std;
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int n;
|
||||||
|
while(cin>>n)
|
||||||
|
{
|
||||||
|
string temp;
|
||||||
|
while(n--)
|
||||||
|
{
|
||||||
|
cin>>temp;
|
||||||
|
auto b=temp.begin();
|
||||||
|
if(*b=='-')
|
||||||
|
{
|
||||||
|
cout<<'-';
|
||||||
|
temp.erase(b);
|
||||||
|
}
|
||||||
|
int c=0;
|
||||||
|
auto d=temp.crbegin();
|
||||||
|
for(;d!=temp.crend();++d)
|
||||||
|
{
|
||||||
|
if(*d=='0')
|
||||||
|
c++;
|
||||||
|
else
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
for(d;d!=temp.crend();++d)
|
||||||
|
cout<<*d;
|
||||||
|
for(int i=0;i!=c;++i)
|
||||||
|
cout<<'0';
|
||||||
|
cout<<endl;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
30
HDOJ/1267_autoAC.cpp
Normal file
30
HDOJ/1267_autoAC.cpp
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
#include<cstdio>
|
||||||
|
#include<cstring>
|
||||||
|
__int64 d[1010][1010];
|
||||||
|
int fun()
|
||||||
|
{
|
||||||
|
int i,j;
|
||||||
|
memset(d,0,sizeof(d));
|
||||||
|
for(i=1; i<=20; i++)
|
||||||
|
{
|
||||||
|
d[i][1]=i;
|
||||||
|
}
|
||||||
|
for(i=2; i<=20; i++)
|
||||||
|
{
|
||||||
|
for(j=2; j<=20; j++)
|
||||||
|
{
|
||||||
|
if(i>=j)
|
||||||
|
d[i][j] = d[i][j-1]+d[i-1][j];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int m,n;
|
||||||
|
fun();
|
||||||
|
while(scanf("%d %d",&m,&n)!=EOF)
|
||||||
|
{
|
||||||
|
printf("%I64d\n",d[m][n]);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
52
HDOJ/1268_autoAC.cpp
Normal file
52
HDOJ/1268_autoAC.cpp
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
#include<stdio.h>
|
||||||
|
#include<string.h>
|
||||||
|
#define i64 __int64
|
||||||
|
int Max(int a,int b){return a>b?a:b;}
|
||||||
|
int Min(int a,int b){return a<b?a:b;}
|
||||||
|
int n,m;
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
while(scanf("%d %d",&n,&m)!=EOF)
|
||||||
|
{
|
||||||
|
int hash[5555][2];
|
||||||
|
int i,maxw,maxl,j;
|
||||||
|
i64 a_min,a_max,temp;
|
||||||
|
a_min=a_max=0;
|
||||||
|
maxw=maxl=0;
|
||||||
|
for(i=0;i<5555;i++)hash[i][0]=hash[i][1]=0;
|
||||||
|
for(i=0;i<n;i++)
|
||||||
|
{
|
||||||
|
scanf("%d",&temp);
|
||||||
|
maxw=Max(temp,maxw);
|
||||||
|
hash[temp][0]++;
|
||||||
|
}
|
||||||
|
for(i=0;i<m;i++)
|
||||||
|
{
|
||||||
|
scanf("%d",&temp);
|
||||||
|
maxl=Max(temp,maxl);
|
||||||
|
hash[temp][1]++;
|
||||||
|
}
|
||||||
|
if(maxw!=maxl)
|
||||||
|
{
|
||||||
|
printf("No solution.\n");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
for(i=1;i<=maxw;i++)
|
||||||
|
{
|
||||||
|
if(hash[i][0]||hash[i][1])
|
||||||
|
{
|
||||||
|
a_min+=Max(hash[i][0],hash[i][1])*i;
|
||||||
|
}
|
||||||
|
temp=0;
|
||||||
|
if(hash[i][0])
|
||||||
|
{
|
||||||
|
for(j=1;j<=maxl;j++)
|
||||||
|
{
|
||||||
|
if(hash[j][1])temp+=Min(i,j)*hash[j][1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
a_max+=temp*hash[i][0];
|
||||||
|
}
|
||||||
|
printf("%I64d %I64d\n",a_min,a_max);
|
||||||
|
}
|
||||||
|
}
|
57
HDOJ/1269_autoAC.cpp
Normal file
57
HDOJ/1269_autoAC.cpp
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
#include<stdio.h>
|
||||||
|
#include<string.h>
|
||||||
|
int pre[2][100010];
|
||||||
|
int n,m;
|
||||||
|
int find(int a,int i)
|
||||||
|
{
|
||||||
|
int r=a;
|
||||||
|
while(r!=pre[i][r])
|
||||||
|
{
|
||||||
|
r=pre[i][r];
|
||||||
|
}
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
void fun(int a,int b)
|
||||||
|
{
|
||||||
|
if(a!=n)
|
||||||
|
{
|
||||||
|
int fa=find(a,0),fb=find(b,0);
|
||||||
|
if(fa!=fb)
|
||||||
|
pre[0][a]=b;
|
||||||
|
}
|
||||||
|
if(b!=n)
|
||||||
|
{
|
||||||
|
int fa=find(a,1),fb=find(b,1);
|
||||||
|
if(fa!=fb)
|
||||||
|
pre[1][b]=a;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
while(scanf("%d%d",&n,&m)!=EOF,n||m)
|
||||||
|
{
|
||||||
|
int i,w=1;
|
||||||
|
for(i=0;i<=n;i++)
|
||||||
|
{
|
||||||
|
pre[0][i]=pre[1][i]=i;
|
||||||
|
}
|
||||||
|
while(m--)
|
||||||
|
{
|
||||||
|
int a,b;
|
||||||
|
scanf("%d%d",&a,&b);
|
||||||
|
fun(a,b);
|
||||||
|
}
|
||||||
|
for(i=1;i<=n;i++)
|
||||||
|
{
|
||||||
|
if(find(i,0)!=n||find(i,1)!=n)
|
||||||
|
{
|
||||||
|
w=0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(w)
|
||||||
|
printf("Yes\n");
|
||||||
|
else
|
||||||
|
printf("No\n");
|
||||||
|
}
|
||||||
|
}
|
58
HDOJ/1270_autoAC.cpp
Normal file
58
HDOJ/1270_autoAC.cpp
Normal file
|
@ -0,0 +1,58 @@
|
||||||
|
#include <string.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#define MAXN 11000
|
||||||
|
int n, sum[MAXN], num[MAXN],tn[MAXN];
|
||||||
|
void init()
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
for (i = 1; i * 2 <= n * (n - 1); ++i)
|
||||||
|
scanf("%d", &sum[i]);
|
||||||
|
}
|
||||||
|
void work()
|
||||||
|
{
|
||||||
|
int i,j,k;
|
||||||
|
for (num[1] = 1; num[1] * 2 <= sum[1]; ++num[1])
|
||||||
|
{
|
||||||
|
j=2;
|
||||||
|
memset(tn, 0, sizeof(tn));
|
||||||
|
for(i=1;i*2<=n*(n-1);i++)
|
||||||
|
{
|
||||||
|
tn[sum[i]]++;
|
||||||
|
}
|
||||||
|
for(i=1;i*2<=n*(n-1);i++)
|
||||||
|
{
|
||||||
|
if(tn[sum[i]]>0)
|
||||||
|
{
|
||||||
|
num[j]=sum[i]-num[1];
|
||||||
|
for(k=1;k<j;k++)
|
||||||
|
{
|
||||||
|
if(tn[num[k]+num[j]]==0)
|
||||||
|
break;
|
||||||
|
else
|
||||||
|
tn[num[k]+num[j]]--;
|
||||||
|
}
|
||||||
|
if(k==j)
|
||||||
|
j++;
|
||||||
|
else
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(j>n)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if(j<=n)
|
||||||
|
return ;
|
||||||
|
for(i=1;i<n;i++)
|
||||||
|
printf("%d ",num[i]);
|
||||||
|
printf("%d\n",num[n]);
|
||||||
|
}
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
while (scanf("%d", &n) != EOF && n)
|
||||||
|
{
|
||||||
|
init();
|
||||||
|
work();
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
43
HDOJ/1271_autoAC.cpp
Normal file
43
HDOJ/1271_autoAC.cpp
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <algorithm>
|
||||||
|
using namespace std;
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int n,i,j,k,a,b,c;
|
||||||
|
int ans[1000],len;
|
||||||
|
while(~scanf("%d",&n),n)
|
||||||
|
{
|
||||||
|
len = 0;
|
||||||
|
for(i = 1; i<=n; i*=10)
|
||||||
|
{
|
||||||
|
c = (n/i)/11;
|
||||||
|
b = (n/i)%11;
|
||||||
|
if(b+c && b<10)
|
||||||
|
{
|
||||||
|
a = (n-b*i-11*c*i)/2;
|
||||||
|
if(n == 2*a+b*i+11*c*i)
|
||||||
|
ans[len++] = a+b*i+c*i*10;
|
||||||
|
}
|
||||||
|
b--;
|
||||||
|
if(b+c && b>=0)
|
||||||
|
{
|
||||||
|
a = (n-b*i-11*c*i)/2;
|
||||||
|
if(n == 2*a+b*i+11*c*i)
|
||||||
|
ans[len++] = a+b*i+c*i*10;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(len)
|
||||||
|
{
|
||||||
|
sort(ans,ans+len);
|
||||||
|
printf("%d",ans[0]);
|
||||||
|
for(i = 1; i<len; i++)
|
||||||
|
if(ans[i]!=ans[i-1])
|
||||||
|
printf(" %d",ans[i]);
|
||||||
|
printf("\n");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
printf("No solution.\n");
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
74
HDOJ/1272_autoAC.cpp
Normal file
74
HDOJ/1272_autoAC.cpp
Normal file
|
@ -0,0 +1,74 @@
|
||||||
|
#include<iostream>
|
||||||
|
#include<cstring>
|
||||||
|
#include<algorithm>
|
||||||
|
#include<cstdlib>
|
||||||
|
#include<vector>
|
||||||
|
#include<cmath>
|
||||||
|
#include<stdlib.h>
|
||||||
|
#include<iomanip>
|
||||||
|
#include<list>
|
||||||
|
#include<deque>
|
||||||
|
#include<map>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <queue>
|
||||||
|
#include <stack>
|
||||||
|
#define maxn 100010
|
||||||
|
#define ull unsigned long long
|
||||||
|
#define ll long long
|
||||||
|
#define reP(i,n) for(i=1;i<=n;i++)
|
||||||
|
#define rep(i,n) for(i=0;i<n;i++)
|
||||||
|
#define cle(a) memset(a,0,sizeof(a))
|
||||||
|
#define mod 90001
|
||||||
|
#define PI 3.141592657
|
||||||
|
#define INF 1<<30
|
||||||
|
const ull inf = 1LL << 61;
|
||||||
|
const double eps=1e-5;
|
||||||
|
using namespace std;
|
||||||
|
bool cmp(int a,int b)
|
||||||
|
{
|
||||||
|
return a>b;
|
||||||
|
}
|
||||||
|
int fa[maxn];
|
||||||
|
int ans,cnt;
|
||||||
|
int mark[maxn];
|
||||||
|
void init(){
|
||||||
|
for(int i=0;i<=maxn;i++)
|
||||||
|
fa[i]=-1;
|
||||||
|
ans=0;cnt=0;
|
||||||
|
cle(mark);
|
||||||
|
}
|
||||||
|
int findfa(int x){
|
||||||
|
while(fa[x]>=0)
|
||||||
|
x=fa[x];
|
||||||
|
return x;
|
||||||
|
}
|
||||||
|
void Union(int x,int y){
|
||||||
|
int fa_x=findfa(x);
|
||||||
|
int fa_y=findfa(y);
|
||||||
|
if(fa_x!=fa_y)
|
||||||
|
fa[fa_x]=fa_y;
|
||||||
|
else{
|
||||||
|
ans++;
|
||||||
|
}
|
||||||
|
mark[x]=mark[y]=1;
|
||||||
|
}
|
||||||
|
int x,y;
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
init();
|
||||||
|
while(cin>>x>>y){
|
||||||
|
if(x==-1&&y==-1)break;
|
||||||
|
if(x==0&&y==0){
|
||||||
|
for(int i=1;i<=maxn;i++){
|
||||||
|
if((mark[i])&&(fa[i]==-1))
|
||||||
|
cnt++;
|
||||||
|
}
|
||||||
|
if(ans>0||cnt>1)printf("No\n");
|
||||||
|
else printf("Yes\n");
|
||||||
|
init();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
Union(x,y);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
9
HDOJ/1273_autoAC.cpp
Normal file
9
HDOJ/1273_autoAC.cpp
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
#include<iostream>
|
||||||
|
using namespace std;
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int n;
|
||||||
|
while(cin>>n&&n)
|
||||||
|
cout<<(n-1)/2<<endl;
|
||||||
|
return 0;
|
||||||
|
}
|
100
HDOJ/1274_autoAC.cpp
Normal file
100
HDOJ/1274_autoAC.cpp
Normal file
|
@ -0,0 +1,100 @@
|
||||||
|
#include<iostream>
|
||||||
|
#include<string>
|
||||||
|
#include<cctype>
|
||||||
|
#include<stack>
|
||||||
|
using namespace std;
|
||||||
|
struct Node{
|
||||||
|
int k1,k2;
|
||||||
|
};
|
||||||
|
Node find(string s){
|
||||||
|
Node k;
|
||||||
|
int i,k1,k2;
|
||||||
|
for(i=s.size()-1;i>=0;i--){
|
||||||
|
if(s[i]=='('){
|
||||||
|
k1=i; break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(i==-1) k.k1=0;
|
||||||
|
else k.k1=k1;
|
||||||
|
for(i=0;i<s.size();i++){
|
||||||
|
if(s[i]==')'&&i>k1){
|
||||||
|
k2=i; break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(i==s.size()) k.k2=0;
|
||||||
|
else k.k2=k2;
|
||||||
|
return k;
|
||||||
|
}
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int t;
|
||||||
|
cin>>t;
|
||||||
|
while(t--){
|
||||||
|
string s;
|
||||||
|
cin>>s;
|
||||||
|
Node k=find(s);
|
||||||
|
if(k.k1+k.k2==0){
|
||||||
|
string s2;
|
||||||
|
for(int i=0;i<s.size();i++){
|
||||||
|
if(!i&&islower(s[i])) s2+=s[i];
|
||||||
|
else if(isdigit(s[i])){
|
||||||
|
for(int j=0;j<s[i]-'0';j++){
|
||||||
|
s2+=s[i+1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(islower(s[i-1])&&islower(s[i])){
|
||||||
|
s2+=s[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
cout<<s2<<endl;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
while(k.k1+k.k2){
|
||||||
|
string s1;
|
||||||
|
for(int i=0;i<k.k1-1;i++){
|
||||||
|
s1+=s[i];
|
||||||
|
}
|
||||||
|
if(k.k1==0||!isdigit(s[k.k1-1])){
|
||||||
|
string s2;
|
||||||
|
if(k.k1==0);
|
||||||
|
else if(!isdigit(s[k.k1-1])) s2+=s[k.k1-1];
|
||||||
|
for(int j=0;j<1;j++){
|
||||||
|
for(int p=k.k1+1;p<k.k2;p++){
|
||||||
|
if(isdigit(s[p])){
|
||||||
|
for(int j=0;j<s[p]-'0';j++){
|
||||||
|
s2+=s[p+1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(!isdigit(s[p-1])&&islower(s[p])){
|
||||||
|
s2+=s[p];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
s1+=s2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(isdigit(s[k.k1-1])){
|
||||||
|
for(int j=0;j<s[k.k1-1]-'0';j++){
|
||||||
|
string s2;
|
||||||
|
for(int p=k.k1+1;p<k.k2;p++){
|
||||||
|
if(isdigit(s[p])){
|
||||||
|
for(int j=0;j<s[p]-'0';j++){
|
||||||
|
s2+=s[p+1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(!isdigit(s[p-1])&&islower(s[p])){
|
||||||
|
s2+=s[p];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
s1+=s2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for(int i=k.k2+1;i<s.size();i++){
|
||||||
|
s1+=s[i];
|
||||||
|
}
|
||||||
|
s=s1;
|
||||||
|
k=find(s);
|
||||||
|
}
|
||||||
|
cout<<s<<endl;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
35
HDOJ/1275_autoAC.cpp
Normal file
35
HDOJ/1275_autoAC.cpp
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
#include<stdio.h>
|
||||||
|
#include<math.h>
|
||||||
|
double l,v1,v2,v;
|
||||||
|
int n;
|
||||||
|
double f(double t1,double t2)
|
||||||
|
{
|
||||||
|
if(t2-t1<=1e-6)
|
||||||
|
return t1;
|
||||||
|
double time=(t1+t2)/2;
|
||||||
|
if(floor((time*v/l+1)/2.0)+floor((time*(v1+v2)/l+1)/2.0)>=n)
|
||||||
|
return f(t1,time);
|
||||||
|
else
|
||||||
|
return f(time,t2);
|
||||||
|
}
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int t;
|
||||||
|
double time,x,dist;
|
||||||
|
scanf("%d",&t);
|
||||||
|
while(t--)
|
||||||
|
{
|
||||||
|
scanf("%lf%lf%lf%d",&l,&v1,&v2,&n);
|
||||||
|
if(v1>v2)
|
||||||
|
v=v1-v2;
|
||||||
|
else
|
||||||
|
v=v2-v1;
|
||||||
|
time=f(0,100000);
|
||||||
|
x=time*v1;
|
||||||
|
while(x>0)
|
||||||
|
x=x-l;
|
||||||
|
dist=(-x)<l+x?(-x):l+x;
|
||||||
|
printf("Time=%.3lf Dist=%.3lf\n",time,dist);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
61
HDOJ/1276_autoAC.cpp
Normal file
61
HDOJ/1276_autoAC.cpp
Normal file
|
@ -0,0 +1,61 @@
|
||||||
|
#include<iostream>
|
||||||
|
#include<string.h>
|
||||||
|
#include<algorithm>
|
||||||
|
#include<stdio.h>
|
||||||
|
using namespace std;
|
||||||
|
int p[5005];
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int m,n,t,k,i;
|
||||||
|
scanf("%d",&t);
|
||||||
|
while(t--)
|
||||||
|
{
|
||||||
|
scanf("%d",&m);
|
||||||
|
for(i=1;i<=5001;i++)
|
||||||
|
{
|
||||||
|
p[i]=1;
|
||||||
|
}
|
||||||
|
n=m;
|
||||||
|
while(n>3)
|
||||||
|
{
|
||||||
|
k=0;n=0;
|
||||||
|
for(i=1;i<=m;i++)
|
||||||
|
{
|
||||||
|
if(p[i])
|
||||||
|
{
|
||||||
|
k=k+1;
|
||||||
|
if(k%2==0)
|
||||||
|
p[i]=0;
|
||||||
|
n=n+p[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
k=0;
|
||||||
|
if(n<=3)
|
||||||
|
break;
|
||||||
|
else
|
||||||
|
n=0;
|
||||||
|
for(i=1;i<=m;i++)
|
||||||
|
{
|
||||||
|
if(p[i])
|
||||||
|
{
|
||||||
|
k=k+1;
|
||||||
|
if(k%3==0)
|
||||||
|
p[i]=0;
|
||||||
|
}
|
||||||
|
n=n+p[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for(i=1;i<=m;i++)
|
||||||
|
{
|
||||||
|
if(p[i])
|
||||||
|
{
|
||||||
|
if(i==1)
|
||||||
|
printf("%d",i);
|
||||||
|
else
|
||||||
|
printf(" %d",i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
printf("\n");
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
76
HDOJ/1277_autoAC.cpp
Normal file
76
HDOJ/1277_autoAC.cpp
Normal file
|
@ -0,0 +1,76 @@
|
||||||
|
#include <iostream>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
using namespace std;
|
||||||
|
struct Tree
|
||||||
|
{
|
||||||
|
int end,n,l[10];
|
||||||
|
void init()
|
||||||
|
{
|
||||||
|
memset(l,-1,sizeof(l));
|
||||||
|
end=n=0;
|
||||||
|
}
|
||||||
|
}tr[700000];
|
||||||
|
int n,m,id;
|
||||||
|
char s[61000],tt[10000],ss[10005][67];
|
||||||
|
bool ok[11000];
|
||||||
|
void add(char*s,int No)
|
||||||
|
{
|
||||||
|
int t=0;
|
||||||
|
for(int i=0;s[i];i++)
|
||||||
|
{
|
||||||
|
int now=s[i]-'0';
|
||||||
|
if(tr[t].l[now]==-1)
|
||||||
|
{
|
||||||
|
tr[id].init();
|
||||||
|
tr[t].l[now]=id++;
|
||||||
|
}
|
||||||
|
t=tr[t].l[now];
|
||||||
|
}
|
||||||
|
tr[t].end=No;
|
||||||
|
}
|
||||||
|
void check(char*s)
|
||||||
|
{
|
||||||
|
int t=0;
|
||||||
|
for(int i=0;s[i];i++)
|
||||||
|
{
|
||||||
|
int now=s[i]-'0';
|
||||||
|
if(tr[t].end&&ok[tr[t].end]==0)
|
||||||
|
{
|
||||||
|
printf(" [Key No. %d]",tr[t].end);
|
||||||
|
ok[tr[t].end]=1;
|
||||||
|
}
|
||||||
|
if(tr[t].l[now]==-1) return;
|
||||||
|
t=tr[t].l[now];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
void init()
|
||||||
|
{
|
||||||
|
scanf("%d%d",&n,&m);
|
||||||
|
int l=0;
|
||||||
|
for(int i=0;i<n;i++)
|
||||||
|
{
|
||||||
|
scanf("%s",tt);
|
||||||
|
for(int j=0;tt[j];j++) s[l++]=tt[j];
|
||||||
|
}
|
||||||
|
s[l]=0;
|
||||||
|
id=1;
|
||||||
|
tr[0].init();
|
||||||
|
for(int i=1;i<=m;i++)
|
||||||
|
{
|
||||||
|
scanf("%s",ss[i]);scanf("%s",ss[i]);
|
||||||
|
scanf("%s",ss[i]);scanf("%s",ss[i]);
|
||||||
|
add(ss[i],i);
|
||||||
|
}
|
||||||
|
printf("Found key:");
|
||||||
|
for(int i=0;s[i];i++)
|
||||||
|
{
|
||||||
|
check(s+i);
|
||||||
|
}
|
||||||
|
puts("");
|
||||||
|
}
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
init();
|
||||||
|
return 0;
|
||||||
|
}
|
64
HDOJ/1278_autoAC.cpp
Normal file
64
HDOJ/1278_autoAC.cpp
Normal file
|
@ -0,0 +1,64 @@
|
||||||
|
#include<stdio.h>
|
||||||
|
#include<iostream>
|
||||||
|
#include<stdlib.h>
|
||||||
|
#include<algorithm>
|
||||||
|
#include<math.h>
|
||||||
|
#include<iomanip>
|
||||||
|
#include<time.h>
|
||||||
|
#include<string.h>
|
||||||
|
#include<string>
|
||||||
|
#include<stack>
|
||||||
|
#include<vector>
|
||||||
|
using namespace std;
|
||||||
|
char map[220][220];
|
||||||
|
int main(){
|
||||||
|
int n,m;
|
||||||
|
while(~scanf("%d%d",&m,&n)){
|
||||||
|
memset(map,0,sizeof(map));
|
||||||
|
int *m1,*m2,*n1,*n2,num;
|
||||||
|
m1=(int*)malloc(sizeof(int)*m);
|
||||||
|
m2=(int*)malloc(sizeof(int)*m);
|
||||||
|
n1=(int*)malloc(sizeof(int)*n);
|
||||||
|
n2=(int*)malloc(sizeof(int)*n);
|
||||||
|
int i,j,k;
|
||||||
|
for(i=0;i<m;i++)
|
||||||
|
scanf("%d",m1+i);
|
||||||
|
for(i=0;i<m;i++)
|
||||||
|
scanf("%d",m2+i);
|
||||||
|
for(i=0;i<n;i++)
|
||||||
|
scanf("%d",n1+i);
|
||||||
|
for(i=0;i<n;i++)
|
||||||
|
scanf("%d",n2+i);
|
||||||
|
int d[220],h;
|
||||||
|
for(i=0,h=1;i<n;i++){
|
||||||
|
for(j=0;j<n2[i];j++)
|
||||||
|
d[h++]=n1[i];
|
||||||
|
}
|
||||||
|
h--;
|
||||||
|
string l="";
|
||||||
|
for(i=0;i<m;i++){
|
||||||
|
for(j=0;j<m1[i];j++)
|
||||||
|
l+="1";
|
||||||
|
for(j=0;j<m2[i];j++)
|
||||||
|
l+="0";
|
||||||
|
}
|
||||||
|
for(i=0;i<l.length();i++)
|
||||||
|
map[l.length()-1-i][0]=l[i];
|
||||||
|
for(j=1;j<=h;j++){
|
||||||
|
for(i=0;i<l.length();i++){
|
||||||
|
map[i][j]=map[(i+d[j]+l.length())%l.length()][j-1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
string l2="";
|
||||||
|
for(i=0;i<l.length();i++)
|
||||||
|
l2+=map[i][h],map[i][h]=0;
|
||||||
|
reverse(l2.begin(),l2.end());
|
||||||
|
if(l.compare(l2)==0){
|
||||||
|
for(i=0;i<l.length();i++)
|
||||||
|
puts(map[i]);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
printf("Can not make beautilful cloth !\n");
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
28
HDOJ/1279_autoAC.cpp
Normal file
28
HDOJ/1279_autoAC.cpp
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
#include <stdio.h>
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int N;
|
||||||
|
int a;
|
||||||
|
int l;
|
||||||
|
scanf("%d",&N);
|
||||||
|
while(N--){
|
||||||
|
scanf("%d",&a);
|
||||||
|
l = 0;
|
||||||
|
while(a>1){
|
||||||
|
if(a%2){
|
||||||
|
if(l == 1)
|
||||||
|
printf(" ");
|
||||||
|
l = 1;
|
||||||
|
printf("%d",a);
|
||||||
|
a = a*3+1;
|
||||||
|
}
|
||||||
|
if(a % 2 == 0){
|
||||||
|
a = a/2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(l == 0)
|
||||||
|
printf("No number can be output !");
|
||||||
|
printf("\n");
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
36
HDOJ/1280_autoAC.cpp
Normal file
36
HDOJ/1280_autoAC.cpp
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
#include<stdio.h>
|
||||||
|
#include <algorithm>
|
||||||
|
using namespace std;
|
||||||
|
#include <string.h>
|
||||||
|
int a[5005];
|
||||||
|
int b[5000005];
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int i,j,n,m,l,count;
|
||||||
|
while(scanf("%d%d",&n,&m)!=EOF)
|
||||||
|
{
|
||||||
|
l=count=0;
|
||||||
|
memset(a,0,sizeof(a));
|
||||||
|
memset(b,0,sizeof(b));
|
||||||
|
for(i=1;i<=n;i++)
|
||||||
|
scanf("%d",&a[i]);
|
||||||
|
sort(a+1,a+1+n);
|
||||||
|
for(i=n;i>=1;i--)
|
||||||
|
for(j=i-1;j>=0;j--)
|
||||||
|
{
|
||||||
|
count++;
|
||||||
|
b[l++]=a[i]+a[j];
|
||||||
|
if(count==n*(n-1)/2)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
sort(b,b+l);
|
||||||
|
for(i=l-1;m>0;m--,i--)
|
||||||
|
{
|
||||||
|
if(m!=1)
|
||||||
|
printf("%d ",b[i]);
|
||||||
|
else
|
||||||
|
printf("%d\n",b[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
84
HDOJ/1281_autoAC.cpp
Normal file
84
HDOJ/1281_autoAC.cpp
Normal file
|
@ -0,0 +1,84 @@
|
||||||
|
#include<stdio.h>
|
||||||
|
#include<string.h>
|
||||||
|
int mark_DFS[10005];
|
||||||
|
int mark_gx[10005];
|
||||||
|
int mark_gx2[10005];
|
||||||
|
int mark_kk[10005];
|
||||||
|
int tou[10005];
|
||||||
|
int tot;
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
int date;
|
||||||
|
int next;
|
||||||
|
}dian;
|
||||||
|
dian cun[10005];
|
||||||
|
void add(int a,int b)
|
||||||
|
{
|
||||||
|
tot++;
|
||||||
|
cun[tot].date=b;
|
||||||
|
cun[tot].next=tou[a];
|
||||||
|
tou[a]=tot;
|
||||||
|
}
|
||||||
|
int DFS(int x)
|
||||||
|
{
|
||||||
|
for(int i=tou[x];i;i=cun[i].next)
|
||||||
|
{
|
||||||
|
int too;
|
||||||
|
too=cun[i].date;
|
||||||
|
if(mark_DFS[too]||mark_kk[too]==x) continue;
|
||||||
|
mark_DFS[too]=1;
|
||||||
|
if(mark_gx[too]==-1||DFS(mark_gx[too]))
|
||||||
|
{
|
||||||
|
mark_gx[too]=x;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int n,a,b,T=1;
|
||||||
|
while(scanf("%d%d%d",&a,&b,&n)!=EOF)
|
||||||
|
{
|
||||||
|
int x,y;
|
||||||
|
tot=1;
|
||||||
|
for(int i=0;i<10005;i++)
|
||||||
|
{
|
||||||
|
cun[i].next=0;
|
||||||
|
tou[i]=0;
|
||||||
|
}
|
||||||
|
for(int i=1;i<=n;i++)
|
||||||
|
{
|
||||||
|
scanf("%d%d",&x,&y);
|
||||||
|
add(x,y);
|
||||||
|
}
|
||||||
|
memset(mark_gx,255,sizeof(mark_gx));
|
||||||
|
memset(mark_kk,255,sizeof(mark_kk));
|
||||||
|
memset(mark_gx2,255,sizeof(mark_gx2));
|
||||||
|
int sum=0;
|
||||||
|
for(int i=0;i<=a;i++)
|
||||||
|
{
|
||||||
|
memset(mark_DFS,0,sizeof(mark_DFS));
|
||||||
|
sum+=DFS(i);
|
||||||
|
}
|
||||||
|
int max=sum;
|
||||||
|
int num=0;
|
||||||
|
for(int i=1;i<=a;i++) { mark_gx2[i]=mark_gx[i];}
|
||||||
|
for(int j=1;j<=a;j++)
|
||||||
|
if(mark_gx2[j]!=-1)
|
||||||
|
{
|
||||||
|
memset(mark_kk,255,sizeof(mark_kk));
|
||||||
|
mark_kk[j]=mark_gx2[j];
|
||||||
|
sum=0;
|
||||||
|
memset(mark_gx,255,sizeof(mark_gx));
|
||||||
|
for(int i=0;i<=a;i++)
|
||||||
|
{
|
||||||
|
memset(mark_DFS,0,sizeof(mark_DFS));
|
||||||
|
sum+=DFS(i);
|
||||||
|
}
|
||||||
|
if(sum<max) num++;
|
||||||
|
}
|
||||||
|
printf("Board %d have %d important blanks for %d chessmen.\n",T++,num,max);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
34
HDOJ/1282_autoAC.cpp
Normal file
34
HDOJ/1282_autoAC.cpp
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
#include<iostream>
|
||||||
|
#include<vector>
|
||||||
|
int rev(int );
|
||||||
|
using namespace std;
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int n;
|
||||||
|
while(cin>>n)
|
||||||
|
{
|
||||||
|
vector<int> v;
|
||||||
|
while(n!=rev(n))
|
||||||
|
{
|
||||||
|
v.push_back(n);
|
||||||
|
n+=rev(n);
|
||||||
|
}
|
||||||
|
v.push_back(n);
|
||||||
|
cout<<v.size()-1<<endl;
|
||||||
|
int i;
|
||||||
|
for(i=0;i<v.size()-1;++i)
|
||||||
|
cout<<v[i]<<"--->";
|
||||||
|
cout<<v[i]<<endl;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
int rev(int n)
|
||||||
|
{
|
||||||
|
int sum=0;
|
||||||
|
while(n!=0)
|
||||||
|
{
|
||||||
|
sum=sum*10+n%10;
|
||||||
|
n/=10;
|
||||||
|
}
|
||||||
|
return sum;
|
||||||
|
}
|
27
HDOJ/1283_autoAC.cpp
Normal file
27
HDOJ/1283_autoAC.cpp
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
#include<iostream>
|
||||||
|
#include<string>
|
||||||
|
using namespace std;
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int m1,m2;
|
||||||
|
string str;
|
||||||
|
while(cin>>m1>>m2>>str)
|
||||||
|
{
|
||||||
|
int r1,r2,r3;
|
||||||
|
r1=r2=r3=0;
|
||||||
|
for(int i=0;i!=str.size();++i)
|
||||||
|
{
|
||||||
|
switch(str[i])
|
||||||
|
{
|
||||||
|
case 'A': r1=m1;break;
|
||||||
|
case 'B': r2=m2;break;
|
||||||
|
case 'C': m1=r3;break;
|
||||||
|
case 'D': m2=r3;break;
|
||||||
|
case 'E': r3=r1+r2;break;
|
||||||
|
case 'F': r3=r1-r2;break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
cout<<m1<<','<<m2<<endl;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
15
HDOJ/1284_autoAC.cpp
Normal file
15
HDOJ/1284_autoAC.cpp
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
#include<stdio.h>
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int n,x2,t,i;
|
||||||
|
while(~scanf("%d",&n))
|
||||||
|
{
|
||||||
|
t=1;
|
||||||
|
x2=n/2;
|
||||||
|
t+=x2;
|
||||||
|
for(i=0;i<=x2;i++)
|
||||||
|
t+=(n-i*2)/3;
|
||||||
|
printf("%d\n",t);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
60
HDOJ/1285_autoAC.cpp
Normal file
60
HDOJ/1285_autoAC.cpp
Normal file
|
@ -0,0 +1,60 @@
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <iostream>
|
||||||
|
#include <algorithm>
|
||||||
|
#include <string.h>
|
||||||
|
#include <cstdlib>
|
||||||
|
int a[501][501];
|
||||||
|
int b[501],w[501];
|
||||||
|
int n,m,i,j,s,t;
|
||||||
|
using namespace std;
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
while(scanf("%d%d",&n,&m)!=EOF)
|
||||||
|
{
|
||||||
|
memset(a,0,sizeof(a));
|
||||||
|
memset(b,0,sizeof(b));
|
||||||
|
memset(w,0,sizeof(w));
|
||||||
|
for(i=1;i<=m;i++)
|
||||||
|
{
|
||||||
|
cin>>s>>t;
|
||||||
|
if(!a[s][t])
|
||||||
|
{
|
||||||
|
a[s][t]++;
|
||||||
|
b[t]++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
int numb=0;
|
||||||
|
while(1)
|
||||||
|
{
|
||||||
|
j=1;
|
||||||
|
if(b[j]!=0)
|
||||||
|
{
|
||||||
|
while(1)
|
||||||
|
{
|
||||||
|
j++;
|
||||||
|
if(b[j]==0)
|
||||||
|
break;
|
||||||
|
if(j>n)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
b[j]=-1;
|
||||||
|
w[numb]=j;
|
||||||
|
numb++;
|
||||||
|
for(i=1;i<=n;i++)
|
||||||
|
{
|
||||||
|
if(a[j][i]>0)
|
||||||
|
{
|
||||||
|
b[i]--;
|
||||||
|
a[j][i]=-1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(numb>n)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
for(i=0;i<numb-2;i++)
|
||||||
|
cout<<w[i]<<' ';
|
||||||
|
cout<<w[numb-2]<<endl;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
26
HDOJ/1286_autoAC.cpp
Normal file
26
HDOJ/1286_autoAC.cpp
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
#include<iostream>
|
||||||
|
using namespace std;
|
||||||
|
const int maxn=32790;
|
||||||
|
int euler[maxn+2];
|
||||||
|
void make()
|
||||||
|
{
|
||||||
|
euler[1]=0;
|
||||||
|
for(int i=2;i<=maxn;++i)
|
||||||
|
euler[i]=i;
|
||||||
|
for(int i=2;i<=maxn;++i)
|
||||||
|
if(euler[i]==i)
|
||||||
|
for(int j=i;j<=maxn;j+=i)
|
||||||
|
euler[j]=euler[j]/i*(i-1);
|
||||||
|
}
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
make();
|
||||||
|
int n,t,sum;
|
||||||
|
cin>>t;
|
||||||
|
while(t--)
|
||||||
|
{
|
||||||
|
cin>>n;
|
||||||
|
cout<<euler[n]<<endl;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
43
HDOJ/1287_autoAC.cpp
Normal file
43
HDOJ/1287_autoAC.cpp
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
#include<iostream>
|
||||||
|
using namespace std;
|
||||||
|
char str[10005];
|
||||||
|
int wen[10005];
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int n;
|
||||||
|
char s;
|
||||||
|
while(cin>>n)
|
||||||
|
{
|
||||||
|
int top=0;
|
||||||
|
for(int j=0;j<n;j++)
|
||||||
|
{
|
||||||
|
cin>>wen[j];
|
||||||
|
}
|
||||||
|
for(char c='A';c<='Z';c++)
|
||||||
|
{
|
||||||
|
for(int i=0;i<n;i++)
|
||||||
|
{
|
||||||
|
s=c^wen[i];
|
||||||
|
if(s>='A'&&s<='Z')
|
||||||
|
{
|
||||||
|
str[top++]=s;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
top=0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(top==n)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for(int k=0;k<top;k++)
|
||||||
|
{
|
||||||
|
cout<<str[k];
|
||||||
|
}
|
||||||
|
cout<<endl;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
50
HDOJ/1288_autoAC.cpp
Normal file
50
HDOJ/1288_autoAC.cpp
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
#include <iostream>
|
||||||
|
#include <cstdio>
|
||||||
|
#include <cstring>
|
||||||
|
#include <cstdlib>
|
||||||
|
#include <cmath>
|
||||||
|
#include <algorithm>
|
||||||
|
#include <vector>
|
||||||
|
#include <queue>
|
||||||
|
#include <stack>
|
||||||
|
#include <string>
|
||||||
|
#include <cassert>
|
||||||
|
#include <ctype.h>
|
||||||
|
#include <set>
|
||||||
|
#include <map>
|
||||||
|
#include <iomanip>
|
||||||
|
#define INIT(x,y) memset(x,y,sizeof(x))
|
||||||
|
#define INF 0x7fffffff
|
||||||
|
#define FAIL {puts("Hat cannot buy tea.");continue;}
|
||||||
|
using namespace std;
|
||||||
|
int n, t1, t2, t3, a1, a2, a3;
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
ios::sync_with_stdio(false);
|
||||||
|
while (cin >> n >> t1 >> t2 >> t3)
|
||||||
|
{
|
||||||
|
if (!n && !t1 && !t2 && !t3) break;
|
||||||
|
if (t1 + 5 * t2 + 10 * t3 < n) FAIL
|
||||||
|
if ((t1 == 0) && (t2 == 0) && (n % 10)) FAIL
|
||||||
|
if ((t1 == 0) && (n % 5)) FAIL
|
||||||
|
a1 = a2 = a3 = 0;
|
||||||
|
if (t2)
|
||||||
|
{
|
||||||
|
if (t1 < n % 5) FAIL
|
||||||
|
a1 = n % 5 + min(n - n % 5, (t1 - n % 5) / 5 * 5);
|
||||||
|
n -= a1;
|
||||||
|
a2 = (n % 10 == 5) ? 1 : 0;
|
||||||
|
a2 += min((n - 5 * a2) / 10 * 2, (t2 - a2) / 2 * 2);
|
||||||
|
n -= a2 * 5;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (t1 < n % 10) FAIL
|
||||||
|
a1 = n % 10 + min(n - n % 10, (t1 - n % 10) / 10 * 10);
|
||||||
|
a2 = 0;
|
||||||
|
n -= a1;
|
||||||
|
}
|
||||||
|
a3 = min(n / 10, t3);
|
||||||
|
cout << a1 << " YiJiao, " << a2 << " WuJiao, and " << a3 << " ShiJiao" << endl;
|
||||||
|
}
|
||||||
|
}
|
14
HDOJ/1289_autoAC.cpp
Normal file
14
HDOJ/1289_autoAC.cpp
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
#include <cstdio>
|
||||||
|
#include <cmath>
|
||||||
|
#include <iostream>
|
||||||
|
using namespace std;
|
||||||
|
int main() {
|
||||||
|
float x;
|
||||||
|
while (cin >> x) {
|
||||||
|
int cnt = 0;
|
||||||
|
while (fabs(x) >= 2.0) x /= 2.0, cnt++;
|
||||||
|
while (fabs(x) < 1.0) x *= 2.0, cnt--;
|
||||||
|
printf("%d %.6f\n", cnt, x);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
11
HDOJ/1290_autoAC.cpp
Normal file
11
HDOJ/1290_autoAC.cpp
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
#include <iostream>
|
||||||
|
using namespace std;
|
||||||
|
int n;
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
while(scanf("%d",&n) != EOF)
|
||||||
|
{
|
||||||
|
cout<<(n*n*n + 5*n + 6)/6<<endl;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
37
HDOJ/1292_autoAC.cpp
Normal file
37
HDOJ/1292_autoAC.cpp
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
#include<iostream>
|
||||||
|
#include<string.h>
|
||||||
|
#include<cmath>
|
||||||
|
#include<cstring>
|
||||||
|
#include<cstdlib>
|
||||||
|
#include<algorithm>
|
||||||
|
using namespace std;
|
||||||
|
__int64 a[30][30];
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int i,j;
|
||||||
|
int t,n;
|
||||||
|
__int64 sum;
|
||||||
|
memset(a,0,sizeof(a));
|
||||||
|
a[1][1]=1;
|
||||||
|
for(i=2;i<26;i++)
|
||||||
|
{
|
||||||
|
for(j=1;j<=i;j++)
|
||||||
|
{
|
||||||
|
a[i][j]=a[i-1][j-1]+a[i-1][j]*j;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
while(~scanf("%d",&t))
|
||||||
|
{
|
||||||
|
while(t--)
|
||||||
|
{
|
||||||
|
scanf("%d",&n);
|
||||||
|
sum=0;
|
||||||
|
for(i=1;i<=n;i++)
|
||||||
|
{
|
||||||
|
sum+=a[n][i];
|
||||||
|
}
|
||||||
|
printf("%I64d\n",sum);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
44
HDOJ/1293_autoAC.cpp
Normal file
44
HDOJ/1293_autoAC.cpp
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
#include<iostream>
|
||||||
|
using namespace std;
|
||||||
|
string Da(string a,string b)
|
||||||
|
{
|
||||||
|
string ans;
|
||||||
|
int carry;
|
||||||
|
int i,j,k;
|
||||||
|
int add1,add2,sum;
|
||||||
|
i=a.size()-1;
|
||||||
|
j=b.size()-1;
|
||||||
|
k=i>j?i:j;
|
||||||
|
if(i>j)
|
||||||
|
ans=a;
|
||||||
|
else
|
||||||
|
ans=b;
|
||||||
|
for(carry=0;k>=0;i--,j--,k--)
|
||||||
|
{
|
||||||
|
add1=i<0?0:a[i]-'0';
|
||||||
|
add2=j<0?0:b[j]-'0';
|
||||||
|
sum=add2+add1+carry>=10?add1+add2+carry-10:add1+add2+carry;
|
||||||
|
carry=add1+add2+carry>=10?1:0;
|
||||||
|
ans[k]=sum+'0';
|
||||||
|
}
|
||||||
|
k=ans.size();
|
||||||
|
if(carry)
|
||||||
|
ans.insert(0,"1");
|
||||||
|
return ans;
|
||||||
|
}
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int n,i;
|
||||||
|
string a[1005];
|
||||||
|
a[0]="1";
|
||||||
|
a[1]="3";
|
||||||
|
for(i=2;i<=1000;i++)
|
||||||
|
{
|
||||||
|
a[i]=Da(Da(a[i-1],a[i-1]),a[i-2]);
|
||||||
|
}
|
||||||
|
while(cin>>n)
|
||||||
|
{
|
||||||
|
cout<<a[n]<<endl;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
65
HDOJ/1294_autoAC.cpp
Normal file
65
HDOJ/1294_autoAC.cpp
Normal file
|
@ -0,0 +1,65 @@
|
||||||
|
#include<iostream>
|
||||||
|
#include<cstdio>
|
||||||
|
#include<vector>
|
||||||
|
#include<queue>
|
||||||
|
#include<algorithm>
|
||||||
|
#include<cmath>
|
||||||
|
#include<string>
|
||||||
|
#include<cstring>
|
||||||
|
using namespace std;
|
||||||
|
typedef long long LL;
|
||||||
|
const double pi=acos(-1.0);
|
||||||
|
int n;
|
||||||
|
LL dp[40][40];
|
||||||
|
LL calc(LL n,int m)
|
||||||
|
{
|
||||||
|
LL ans=1;
|
||||||
|
LL tmp=n+m-1;
|
||||||
|
for(int i=1;i<=m;i++)
|
||||||
|
{
|
||||||
|
ans*=tmp;
|
||||||
|
ans/=i;
|
||||||
|
tmp--;
|
||||||
|
}
|
||||||
|
return ans;
|
||||||
|
}
|
||||||
|
LL dfs(int n,int mx)
|
||||||
|
{
|
||||||
|
if(n<mx) return 0;
|
||||||
|
if(n && !mx) return 0;
|
||||||
|
if(!n && mx) return 0;
|
||||||
|
if(!n) return 1;
|
||||||
|
LL &ans=dp[n][mx];
|
||||||
|
if(ans!=-1) return ans;
|
||||||
|
ans=0;
|
||||||
|
LL tmp=0;
|
||||||
|
for(int i=0;i<mx;i++)
|
||||||
|
{
|
||||||
|
tmp+=dfs(mx-1,i);
|
||||||
|
}
|
||||||
|
for(int i=1;i*mx<=n;i++)
|
||||||
|
{
|
||||||
|
LL ans1=calc(tmp,i);
|
||||||
|
LL ans2=0;
|
||||||
|
for(int j=mx-1;j>=0;j--)
|
||||||
|
{
|
||||||
|
ans2+=dfs(n-i*mx,j);
|
||||||
|
}
|
||||||
|
ans+=ans1*ans2;
|
||||||
|
}
|
||||||
|
return ans;
|
||||||
|
}
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
memset(dp,-1,sizeof dp);
|
||||||
|
while(scanf("%d",&n)==1)
|
||||||
|
{
|
||||||
|
LL ans=0;
|
||||||
|
for(int i=n-1;i>=0;i--)
|
||||||
|
{
|
||||||
|
ans+=dfs(n-1,i);
|
||||||
|
}
|
||||||
|
printf("%I64d\n",ans);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
11
HDOJ/1295_autoAC.cpp
Normal file
11
HDOJ/1295_autoAC.cpp
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
#include<iostream>
|
||||||
|
using namespace std ;
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int n ;
|
||||||
|
while(cin >> n)
|
||||||
|
{
|
||||||
|
cout << n << endl ;
|
||||||
|
}
|
||||||
|
return 0 ;
|
||||||
|
}
|
68
HDOJ/1296_autoAC.cpp
Normal file
68
HDOJ/1296_autoAC.cpp
Normal file
|
@ -0,0 +1,68 @@
|
||||||
|
#include<stdio.h>
|
||||||
|
#include<string.h>
|
||||||
|
#include<iostream>
|
||||||
|
#include<cmath>
|
||||||
|
using namespace std;
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int n;
|
||||||
|
char a[1005];
|
||||||
|
while(scanf("%d",&n)!=EOF)
|
||||||
|
{
|
||||||
|
scanf("%s",a);
|
||||||
|
int date=0,poww=0,wei=1,sum=0,cheng=1,flag=0;
|
||||||
|
for(int i=strlen(a)-1;i>=0;i--)
|
||||||
|
{
|
||||||
|
if(a[i]>='0'&&a[i]<='9')
|
||||||
|
{
|
||||||
|
date+=(a[i]-'0')*wei;
|
||||||
|
wei*=10;
|
||||||
|
poww=0;
|
||||||
|
}
|
||||||
|
else if(a[i]=='^')
|
||||||
|
{
|
||||||
|
poww=wei=1;
|
||||||
|
}
|
||||||
|
else if(a[i]=='X'&&poww)
|
||||||
|
{
|
||||||
|
cheng*=pow(n*1.0,date*1.0);
|
||||||
|
poww=date=0;
|
||||||
|
wei=1;
|
||||||
|
}
|
||||||
|
else if(a[i]=='X')
|
||||||
|
{
|
||||||
|
cheng*=n;
|
||||||
|
poww=0;
|
||||||
|
wei=1;
|
||||||
|
}
|
||||||
|
else if(a[i]=='-')
|
||||||
|
{
|
||||||
|
if(date==0)
|
||||||
|
sum-=cheng;
|
||||||
|
else sum-=cheng*date;
|
||||||
|
date=poww=0;
|
||||||
|
wei=cheng=1;
|
||||||
|
}
|
||||||
|
else if(a[i]=='+')
|
||||||
|
{
|
||||||
|
if(date==0)
|
||||||
|
sum+=cheng;
|
||||||
|
else sum+=date*cheng;
|
||||||
|
date=poww=0;
|
||||||
|
wei=cheng=1;
|
||||||
|
}
|
||||||
|
if(i==0)
|
||||||
|
{
|
||||||
|
if(a[i]=='+'||a[i]=='-') continue;
|
||||||
|
else flag=1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(flag)
|
||||||
|
{
|
||||||
|
if(date==0)
|
||||||
|
sum+=cheng;
|
||||||
|
else sum+=date*cheng;
|
||||||
|
}
|
||||||
|
printf("%d\n",sum);
|
||||||
|
}
|
||||||
|
}
|
39
HDOJ/1297_autoAC.cpp
Normal file
39
HDOJ/1297_autoAC.cpp
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
#include<stdio.h>
|
||||||
|
int a[1001][101];
|
||||||
|
int i,j;
|
||||||
|
void add(int n)
|
||||||
|
{
|
||||||
|
int k=0;
|
||||||
|
for(j=1;j<101;j++)
|
||||||
|
{
|
||||||
|
k+=a[n-1][j]+a[n-2][j]+a[n-4][j];
|
||||||
|
a[n][j]=k%10000;
|
||||||
|
k/=10000;
|
||||||
|
}
|
||||||
|
while(k)
|
||||||
|
{
|
||||||
|
a[n][j++]=k%10000;
|
||||||
|
k/=10000;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int n;
|
||||||
|
int j=100;
|
||||||
|
a[1][1]=1;
|
||||||
|
a[2][1]=2;
|
||||||
|
a[3][1]=4;
|
||||||
|
a[4][1]=7;
|
||||||
|
for(i=5;i<1001;i++)
|
||||||
|
add(i);
|
||||||
|
while(scanf("%d",&n)!=EOF)
|
||||||
|
{
|
||||||
|
for(i=100;i>0;i--)
|
||||||
|
if(a[n][i]!=0)break;
|
||||||
|
printf("%d",a[n][i]);
|
||||||
|
for(i=i-1;i>0;i--)
|
||||||
|
printf("%04d",a[n][i]);
|
||||||
|
printf("\n");
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
140
HDOJ/1298_autoAC.cpp
Normal file
140
HDOJ/1298_autoAC.cpp
Normal file
|
@ -0,0 +1,140 @@
|
||||||
|
#include<iostream>
|
||||||
|
#include<algorithm>
|
||||||
|
#include<string>
|
||||||
|
#include<cstdio>
|
||||||
|
using namespace std;
|
||||||
|
struct node
|
||||||
|
{
|
||||||
|
int count;
|
||||||
|
struct node*next[26];
|
||||||
|
int temp;
|
||||||
|
};
|
||||||
|
struct node*newnode()
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
struct node *r;
|
||||||
|
r=new struct node;
|
||||||
|
for(i=0;i<26;i++)
|
||||||
|
r->next[i]=NULL;
|
||||||
|
r->count=0;
|
||||||
|
r->temp=0;
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
void build(struct node *root,string str,int v)
|
||||||
|
{
|
||||||
|
struct node*r,*s;
|
||||||
|
int i;
|
||||||
|
r=root;
|
||||||
|
for(i=0;i<str.length();i++)
|
||||||
|
{
|
||||||
|
if(r->next[str[i]-'a']==NULL)
|
||||||
|
{
|
||||||
|
s=newnode();
|
||||||
|
s->count=v;
|
||||||
|
r->next[str[i]-'a']=s;
|
||||||
|
r=s;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
r=r->next[str[i]-'a'];
|
||||||
|
r->count+=v;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
r->temp=1;
|
||||||
|
}
|
||||||
|
char tel[8][5]={"abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"};
|
||||||
|
struct pa
|
||||||
|
{
|
||||||
|
char c;
|
||||||
|
int sum;
|
||||||
|
};
|
||||||
|
int cmp(struct pa a,struct pa b)
|
||||||
|
{
|
||||||
|
if(a.sum==b.sum)
|
||||||
|
return a.c<b.c;
|
||||||
|
return a.sum>b.sum;
|
||||||
|
}
|
||||||
|
char ans[105]="";
|
||||||
|
char temp[105]="";
|
||||||
|
int flag;
|
||||||
|
char sum[105];
|
||||||
|
void search(struct node*root,string str,int v)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
struct node *r;
|
||||||
|
r=root;
|
||||||
|
if(v==str.length())
|
||||||
|
{
|
||||||
|
if(r->count>flag)
|
||||||
|
{
|
||||||
|
flag=r->count;
|
||||||
|
sum[v]='\0';
|
||||||
|
strcpy(ans,sum);
|
||||||
|
}
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
int t=0;
|
||||||
|
struct pa a[4];
|
||||||
|
int L=strlen(tel[str[v]-'2']);
|
||||||
|
int k=0;
|
||||||
|
for(i=0;i<L;i++)
|
||||||
|
{
|
||||||
|
if(r->next[tel[str[v]-'2'][i]-'a']!=NULL)
|
||||||
|
{
|
||||||
|
a[k].sum=r->next[tel[str[v]-'2'][i]-'a']->count;
|
||||||
|
a[k].c=tel[str[v]-'2'][i];
|
||||||
|
k++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sort(a,a+k,cmp);
|
||||||
|
for(i=0;i<k;i++)
|
||||||
|
{
|
||||||
|
sum[v]=a[i].c;
|
||||||
|
search(root->next[a[i].c-'a'],str,v+1);
|
||||||
|
}
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int T;
|
||||||
|
cin>>T;
|
||||||
|
for(int w=1;w<=T;w++)
|
||||||
|
{
|
||||||
|
printf("Scenario #%d:\n",w);
|
||||||
|
int N;
|
||||||
|
char p[105];
|
||||||
|
struct node*root;
|
||||||
|
root=newnode();
|
||||||
|
cin>>N;
|
||||||
|
while(N--)
|
||||||
|
{
|
||||||
|
int v;
|
||||||
|
scanf("%s%d",p,&v);
|
||||||
|
build(root,p,v);
|
||||||
|
}
|
||||||
|
int M;int L;
|
||||||
|
cin>>M;
|
||||||
|
int tag=0;
|
||||||
|
while(M--)
|
||||||
|
{
|
||||||
|
scanf("%s",p);
|
||||||
|
L=strlen(p);
|
||||||
|
char q[105];
|
||||||
|
int i;
|
||||||
|
for(i=1;i<L;i++)
|
||||||
|
{
|
||||||
|
strcpy(q,p);
|
||||||
|
q[i]='\0';
|
||||||
|
flag=0;
|
||||||
|
search(root,q,0);
|
||||||
|
if(!flag)
|
||||||
|
printf("MANUALLY\n");
|
||||||
|
else
|
||||||
|
puts(ans);
|
||||||
|
}
|
||||||
|
printf("\n");
|
||||||
|
}
|
||||||
|
printf("\n");
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
51
HDOJ/1299_autoAC.cpp
Normal file
51
HDOJ/1299_autoAC.cpp
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
#include <iostream>
|
||||||
|
#include<stdio.h>
|
||||||
|
#include<string.h>
|
||||||
|
using namespace std;
|
||||||
|
int is_prime[100000];
|
||||||
|
int prime[50000];
|
||||||
|
void prepare()
|
||||||
|
{
|
||||||
|
memset(is_prime,1,sizeof(is_prime));
|
||||||
|
for(int i=2;i<1000;i++)
|
||||||
|
{
|
||||||
|
if(is_prime[i])
|
||||||
|
for(int j=i;i*j<100000;j++)
|
||||||
|
is_prime[i*j]=0;
|
||||||
|
}
|
||||||
|
int s=1;
|
||||||
|
for(int i=2;i<100000;i++)
|
||||||
|
if(is_prime[i])
|
||||||
|
prime[s++]=i;
|
||||||
|
}
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int t;
|
||||||
|
scanf("%d",&t);
|
||||||
|
prepare();
|
||||||
|
int n;
|
||||||
|
int temp=0;
|
||||||
|
while(t--)
|
||||||
|
{
|
||||||
|
scanf("%d",&n);
|
||||||
|
int s=1,ans=1;;
|
||||||
|
while(prime[s]*prime[s]<=n)
|
||||||
|
{
|
||||||
|
if(n%prime[s]==0)
|
||||||
|
{
|
||||||
|
int coun=0;
|
||||||
|
while(n%prime[s]==0)
|
||||||
|
{
|
||||||
|
coun++;
|
||||||
|
n=n/prime[s];
|
||||||
|
}
|
||||||
|
ans*=(coun*2+1);
|
||||||
|
}
|
||||||
|
s++;
|
||||||
|
}
|
||||||
|
if(n!=1)
|
||||||
|
ans*=3;
|
||||||
|
printf("Scenario #%d:\n%d\n\n",++temp,(ans+1)/2);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user