65,210
社区成员
发帖
与我相关
我的任务
分享#include <iostream>
using namespace std;
int n0, m0;
int Result(int, int, int);
int Com(int,int,int);
int main(void)
{
int t, n, m, k;
cin>>t;
int *a=new int [t];
for (int i=0, t0=t; t0>0; t0--)
{
cin>>n>>m>>k;
m0=m;
n0=n;
if (k>=0 && n*m>=k)
a[i++]=Com(n,m,k);
}
for (int i=1; i<=t; i++)
cout<<"Case #"<<i<<": "<<a[i-1]<<endl;
delete []a;
}
int Result(int n, int m, int k)
{
if (m>1 && n>1 && n*m<=k && k-n*m<n && k-m*n<m)
{
int x, y;
if (m==m0) return m*n*(m-1)*(n-1)/4+n*(k-m*n)*(k-m*n-1)/2;
else if (n==n0) return m*n*(m-1)*(n-1)/4+m*(k-m*n)*(k-m*n-1)/2;
else if(m!=m0 && n!=n0)
{
x=m*n*(m-1)*(n-1)/4+n*(k-m*n)*(k-m*n-1)/2;
y=m*n*(m-1)*(n-1)/4+m*(k-m*n)*(k-m*n-1)/2;
return x>=y ? x : y;
}
}
else return 0;
}
int Com(int n,int m,int k)
{
int *p=new int[m*n];
int a0=0,i0=0;
for( ; n>1; n--)
for(m=m0 ; m>1; m--)
p[i0++]=Result(n, m, k);
for (int i=0; i<i0; i++)
a0=a0>=p[i] ? a0 : p[i];
delete []p;
return a0;
}#include<cstdio>
#include <math.h>
#include <stdlib.h>
#include "string.h"
int main()
{
int T, t;
scanf("%d",&T);
t = 1;
while (t <= T)
{
int N, M, K;
scanf("%d%d%d",&N,&M,&K);
int result = 0;
if (N > M) // 令M>N
{
int tmp = N;
N = M;
M = tmp;
}
int n1 = int(sqrt(K*1.0)), n2 = M;
n1 = n1 > N ? N : n1;
for (; n1 * n2 > K; --n2);
int max = 0;
while (n1 >= 2 && n2 <= M)
{
int k = K;
result += ( n1 * (n1 - 1) * n2 * (n2 - 1) )/4;
k -= n1 * n2;
if (n2 < M)
result += n2 * (k * (k - 1) / 2);
else
result += n1 * (k * (k - 1) / 2);
max = result > max ? result : max;
// 修改n1,n2
--n1;
n2 = K / n1;
result = 0;
}
printf("Case #%d: %d",t,max);
printf("\n");
++t;
}
return 0;
}
#include <iostream>
#include <string>
using namespace std;
int main(void)
{
int t, n, m;
cin>>t;
string *p=new string[t];
for (int t0=0; t0<t; t0++)
{
string p1[11], p2[11];
string s;
cin>>n>>m;
for (int i=0; i<m; i++)
cin>>p1[i]>>p2[i];
cin.get();
getline(cin, s);
s=" "+s+" ";
for (int j=1; j<n; j++)
{
string ss=s;
for (int i=0; i<m; i++)
{
if(s.rfind(" "+p1[i]+" ")!=string::npos)
while (ss.rfind(" "+p1[i]+" ")!=string::npos)
ss.replace(ss.rfind(" "+p1[i]+" ")+1, p1[i].length(), p2[i]);
}
s=ss;
}
p[t0]=s.replace(s.rfind(" "), 1, "");
}
for (int i=0; i<t; i++) cout<<"Case #"<<i+1<<":"<<p[i]<<endl;
delete []p;
}

