2019牛客国庆集训派对day4

D.Super Resolution

构造矩阵图形的的题,跟CCPC网络那道题差不多。

#include<bits/stdc++.h>
using namespace std;
char x[11][11];
char y[110][110];  //注意是char

int main()
{
    int n,m,a,b;
    while(~scanf("%d%d%d%d",&n,&m,&a,&b))
    {
        for(int i=0;i<n;i++)
            for(int j=0;j<m;j++)
                cin>>x[i][j];
        for(int i=0;i<n*a;i++)  //要分清行和列啊
        {
            for(int j=0;j<m*b;j++)
            {
                y[i][j]=x[i/a][j/b];  //
                printf("%c",y[i][j]);
            }
                printf("\n");
        }
    }
    return 0;
}
View Code

I.Strange Optimization

算是数学题吧,k*gcd(n,m)/(n*m)的时候取最小值,最大值正好就在两个连续最小值之间,1/2正好是个最小值,所以最大值正好跟它差gcd(n,m)/(2*n*m)。

只考虑t在[0,1)内,整数部分可以被消去。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll gcd(ll a,ll b)
{
    if(a<b) swap(a,b);
    return !b?a:gcd(b,a%b);
}
int main()
{
    ll n,m;
    while(~scanf("%lld%lld",&n,&m))
    {
        ll ans=n*m*2;
        ll x=gcd(m,n);
        ans/=x;
        printf("1/%lld\n",ans);
    }
    return 0;
}
View Code

猜你喜欢

转载自www.cnblogs.com/pika369/p/11629041.html