石油大学组队赛----问题 K: Tetris,问题 J: Tangram,问题 G: Circle,问题 B: Gcd,问题 A: Ticket

明若清溪天下绝歌 缱绻成说,不知该在哪处着墨;一生情深怎奈何世事 徒留斑驳,只一念痴恋成奢。

题目描述

wls有一个n∗m的网格,他现在想用俄罗斯方块中的"凸"型密铺它。

一个"凸"型占四个格子,你可以随意把它调成上下左右四个方向中的一个。
密铺的定义是网格中任意一个格子被且只被一个"凸"型铺到,并且这些"凸"型不能铺出网格的边界。
随意输出一组解即可。
 

 

输入

一行两个整数n,m。
1≤n,m≤12

 

输出

无解输出no response。
如果有解,输出n行,每行m个字符。你只能使用1,2,3,4这四个字符,由同一字符组成的四连通块被视为一个"凸"型。
如果有多组解,那么输出任意一种即可。

 

样例输入

复制样例数据

4 4

样例输出

1113
2133
2243
2444
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#define inf 0x3f3f3f3f
typedef long long ll;
using namespace std;
int m,n,mp[120][120];
int db[5][5]= {{1,1,1,3},{2,1,3,3},{2,2,4,3},{2,4,4,4}};
int main()
{
    scanf("%d%d",&n,&m);
    if(n%4!=0||m%4!=0)
        printf("no response\n");
    else
    {
        for(int i=1; i<=n/4; i++)
        {
            for(int k=0; k<4; k++)
            {
                for(int j=1; j<=m/4; j++)
                {
                    for(int g=0; g<4; g++)
                    {
                        printf("%d",db[k][g]);
                    }
                }
                    printf("\n");
            }
        }
    }
    return 0;
}

题目描述

一块七巧板有7块,现在wls想再在七巧板上加n条直线将七巧板切分并且使得切出来的块最多,请问最多能有多少块?

石油大学组队赛----问题 K: Tetris,问题 J: Tangram,问题 G: Circle,问题 B: Gcd,问题 A: Ticket_第1张图片

 

输入

输入有多组(不超过100,000组)。
每组一行一个正整数n。
0≤n≤1,000,000,000

 

输出

每组输出一行一个数代表答案。

 

样例输入

复制样例数据

1

样例输出

13
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#define inf 0x3f3f3f3f
typedef long long ll;
using namespace std;
int main(){
    ll jg,n;
    while(scanf("%lld",&n)!=EOF){
       jg=7+5*n+n*(n+1)/2;
        printf("%lld\n",jg);
    }
    return 0;
}

题目描述

在半径为1的圆上有n个点,它们也是圆的n等分点,将每个相邻的n等分点相连,组成了一个正n边形,现在你可以在圆上再增加一个点,使得新的n+1边形的面积最大,请输出最大面积。

 

输入

输入有多组(不超过100组)。
每组数据一行一个整数n代表点的数量。
3≤n≤100

 

输出

每组数据输出一行一个数表示加上一个点后的最大面积,结果保留6位小数。

 

样例输入

复制样例数据

3

样例输出

1.732051
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#define inf 0x3f3f3f3f
typedef long long ll;
#define PI 3.1415926535898
using namespace std;
int main()
{
    int n;
    double s=0,r=1,a,x=0,y=0,s1=0,s2=0;
    while(scanf("%d",&n)!=EOF)
    {
        a=0,x=0,y=0,s1=0,s2=0,s=0;
        //printf("%.6f\n",PI);
        a=2*PI/(2*n);
        x=r*sin(a);
        y=r*cos(a);
        s1=x*y*n;
        s2=(1-y)*x;
        s=s1+s2;
        printf("%.6f\n",s);
    }
    return 0;
}

题目描述

wls有一个整数n,他想将1-n这n个数字分成两组,每一组至少有一个数,并且使得两组数字的和的最大公约数最大,请输出最大的最大公约数。

 

输入

输入一行一个整数n。
2≤n≤1,000,000,000

 

输出

输出一行一个整数表示答案。

 

样例输入

复制样例数据

6

样例输出

7
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#define inf 0x3f3f3f3f
typedef long long ll;
using namespace std;
ll sum=0;
ll n;
int main()
{
    cin>>n;
    sum=(n*(n+1))/2;
//  if(sum==3)
//  return cout<<1,0;
    for(ll i=2;i<=sum;i++)
    {
        if(sum%i==0)
        {
            cout<

题目描述

北京地铁票每月的打折规则为:本次乘车前总消费不足100元本次不打折,满100元不足150元本次打8折,满150元不足400元本次打5折,已满400元后本次不打折,已知wls每次出行的原票价,请问实际的花费是多少?

 

输入

输入包含两行。第一行一个整数n代表wls将要出行的次数。第二行n个正整数,ai代表每次出行的票的原价,wls是按照输入顺序依次出行的。
0≤n≤1,000
0

 

输出

一行一个数,代表实际的花费,保留小数点后两位小数。

 

样例输入

复制样例数据

3
100 20 20

样例输出

132.00
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#define inf 0x3f3f3f3f
typedef long long ll;
using namespace std;
int main(){
    int n,i,j;
    double a[1001],sum=0.0;
    scanf("%d",&n);
    for(i=0;i>a[i];
    }
    for(i=0;i=100&sum<150){
            a[i]=a[i]*0.8;
        }
        if(sum>=150&&sum<400){
            a[i]=a[i]*0.5;
        }
        sum+=a[i];
    }
    printf("%.2f\n",sum);
}

 

你可能感兴趣的:(石油大学)