http://acm.nyist.net/JudgeOnline/problem.php?pid=1248
#include<bits/stdc++.h>
using namespace std;
const int N=110;
const int inf=0x3f3f3f3f;
int e[N][N];
int main()
{
int i,j,k,m,n;
while(~scanf("%d%d",&n,&m))
{
memset(e,0x3f3f3f3f,sizeof(e));
for(i=0;i<N;i++) e[i][i]=0;
int a,b,c;
for(i=0;i<m;i++)
{
scanf("%d%d%d",&a,&b,&c);
e[a][b]=min(e[a][b],c);
e[b][a]=min(e[b][a],c);
}
for(k=1;k<=n;k++)
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(e[i][k]<inf && e[k][j]<inf &&e[i][j]>max(e[i][k],e[k][j]))
{
e[i][j]=max(e[i][k],e[k][j]);
}
cin>>m;
for(i=0;i<m;i++)
{
cin>>a>>b;
if(e[a][b]==inf) cout<<"-1"<<endl;
else cout<<e[a][b]<<endl;
}
}
}
http://acm.nyist.net/JudgeOnline/problem.php?pid=1249
#include<bits/stdc++.h>
using namespace std;
int dp[100100];
int main()
{
int n,m,t,i,j,ans;
scanf("%d",&t);
while(t--)
{
int a,b,c,d,v;
scanf("%d%d",&n,&v);
memset(dp,0,sizeof(dp));
dp[0]=1;
for(i=0;i<n;i++)
{
scanf("%d",&a);
for(j=v;j>=a;j--)
dp[j]+=dp[j-a];
}
printf("%d\n",dp[v]);
}
return 0;
}
http://acm.nyist.net/JudgeOnline/problem.php?pid=1250
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll gcd(ll a,ll b,ll &x,ll &y)
{
if(b==0){
x = 1;
y = 0;
return a;
}
ll g=gcd(b,a%b,x,y);
ll tmp=x;
x=y;
y=tmp-(a/b)*y;
return g;
}
bool is(ll a,ll b,ll c,ll d,ll g,ll x,ll y)
{
for(int i = -2; i <= 2; ++i)
{
ll x1, y1;
x1 = a+x/g*i;
y1 = b-y/g*i;
for(int j = -2; j <= 2; ++j)
{
ll x2, y2;
x2 = c+x/g*j;
y2 = d-y/g*j;
if((x1+y2)%2 == 0 && (x2+y1)%2 == 0)
return 1;
}
}
return 0;
}
int main()
{
int t;
cin>>t;
while(t--)
{
ll x,y,a,b,c,d,g,m,n;
cin>>a>>b>>m>>n;
g=gcd(a,b,x,y);
if(m%g||n%g) puts("N");
else if(is(x*(m/g),y*(m/g),x*(n/g),y*(n/g),g,a,b)) puts("Y");
else puts("N");
}
return 0;
}
http://acm.nyist.net/JudgeOnline/problem.php?pid=1251
#include<bits/stdc++.h>
using namespace std;
const int imax=0x3f3f3f3f;
struct gg
{
long long a;
}a[505];
long long b[505];
long long dp[505][505];
bool cmp(gg a,gg b)
{
return a.a<b.a;
}
int main()
{
int k;
scanf("%d",&k);
while (k--)
{
int n;
scanf("%d",&n);
for (int i=0;i<n;i++) scanf("%d",&b[i]),a[i].a=b[i];
sort(a,a+n,cmp);
for (int i=0;i<n;i++)
{
long long s=b[0]-a[i].a;
dp[i][0]=abs(s);
}
for (int i=1;i<n;i++)
{
long long mmin=imax;
for (int j=0;j<n;j++)
{
mmin=min(mmin,dp[j][i-1]);
long long s=b[i]-a[j].a;
s=abs(s);
dp[j][i]=s+mmin;
}
}
long long mmmm=imax;
for (int i=0;i<n;i++) mmmm=min(mmmm,dp[i][n-1]);
for (int i=1;i<n;i++)
{
long long mmin=imax;
for (int j=n-1;j>=0;j--)
{
mmin=min(mmin,dp[j][i-1]);
long long s=b[i]-a[j].a;
s=abs(s);
dp[j][i]=s+mmin;
}
}
for (int i=0;i<n;i++) mmmm=min(mmmm,dp[i][n-1]);
cout<<mmmm<<endl;
}
}
http://acm.nyist.net/JudgeOnline/problem.php?pid=1252
http://acm.nyist.net/JudgeOnline/problem.php?pid=1253
#include<bits/stdc++.h>
using namespace std;
const int N=110;
const int inf=0x3f3f3f3f;
string s;
int main()
{
while(cin>>s,s!="0+0=0")
{
int n=s.size(),i;
int a=0,b=0,c=0;
for(i=n-1;s[i]!='=';i--) a=a*10+s[i]-'0';
for(i--;s[i]!='+';i--) b=b*10+s[i]-'0';
for(i--;i>=0;i--) c=c*10+s[i]-'0';
if(a==b+c) printf("TRUE\n");
else printf("FALSE\n");
}
return 0;
}
http://acm.nyist.net/JudgeOnline/problem.php?pid=1254
未AC
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e2;
const int inf=0x3f3f3f3f;
int start,k;
char s[N];
int f[N];
int e[N][N];
int dfs(int i)
{
int v,n;
while(start!=strlen(s))
{
switch(s[start])
{
case ')': {start++;return 0;}
case ' ': {start++;}
case '(':
{
start++;
sscanf(s+start,"%d%n",&v,&n);
start+=n;
if(i!=0) {e[v][i]=1;e[i][v]=1;f[i]++;f[v]++;}
k++;
dfs(v);
}
}
}
}
int is(int n,int j)
{
for(int i=1;i<=n;i++) if(e[i][j]) e[i][j]=0;
for(int i=1;i<=n;i++) if(e[j][i]) {e[j][i]=0;return i;}
}
int main()
{
int i,j;
while(gets(s)&&s!="EOF")
{
memset(f,0,sizeof(f));
memset(e,0,sizeof(e));
start=0;k=0;
dfs(0);
// for(i=1;i<=k;i++) cout<<i<<" ";cout<<endl;
// for(i=1;i<=k;i++) cout<<f[i]<<" ";cout<<endl;
// for(i=1;i<=k;i++) {for(j=1;j<=k;j++) cout<<e[i][j]<<" ";cout<<endl;}
for(i=0;i<k-1;i++)
{
for(j=1;j<=k;j++) if(f[j]==1) break;
f[j]=inf;
int b=is(k,j);f[b]--;
if(i!=k-2) cout<<b<<" ";
else cout<<b;
}
cout<<endl;
}
}
http://acm.nyist.net/JudgeOnline/problem.php?pid=1255
#include<bits/stdc++.h>
using namespace std;
const int N=110;
struct node{
int x,y;
}e[N];
int dp[N];
bool cmp(node p1,node p2){
if(p1.x==p2.x) return p1.y>p2.y;
return p1.x>p2.x;
}
bool jud(node p1,node p2)
{
if((p1.x<p2.x && p1.y<p2.y) || (p1.x==p2.x && p1.y<p2.y) || (p1.x<p2.x && p1.y==p2.y)) return true;
return false;
}
int main()
{
int t;
int m,i,j,n;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
int a,b;
for(i=0;i<n;i++)
{
scanf("%d%d",&a,&b);
if(a<b) swap(a,b);
e[i].x=a;
e[i].y=b;
}
sort(e,e+n,cmp);
for(i=0;i<n;i++)
{
dp[i]=1;
for(j=0;j<i;j++)
{
if(jud(e[i],e[j])) dp[i]=max(dp[i],dp[j]+1);
}
}
int ans=0;
for(i=0;i<n;i++)
if(ans<dp[i]) ans=dp[i];
printf("%d\n",ans);
}
return 0;
}