考试反思(1)

来源:互联网 发布:java web文件上传方式 编辑:程序博客网 时间:2024/05/01 04:01

第一题如下:

1恐怖服装

  (halloween.pas/c/cpp)

【问题描述】

万圣节又到了!农场主—任燮境打算带他的奶牛去参加一个化装晚会,但是,任燮境只做了一套能容下两头总长不超过S(1 <= S <= 1,000,000)的牛的恐怖服装。任燮境养了N(2 <= N <= 20,000)头按1..N顺序编号的奶牛,编号为i的奶牛的长度为Li(1 <= Li <= 1,000,000)。如果两头奶牛的总长度不超过S,那么她们就能穿下这套服装。

任燮境想知道,如果他想选择两头不同的奶牛来穿这套衣服,一共有多少种满足

条件的方案。

这道题很简单(思路就不说了):

#include<bits/stdc++.h>

using namespace std;

int main()

{

int n,s,i,j,k=0;

cin>>n>>s;

int a[n+10];

for(i=1;i<=n;i++)

  cin>>a[i];

for(i=1;i<=n;i++)

  for(j=i+1;j<=n;j++)

    if(a[i]+a[j]<=s)k++;

cout<<k;

return 0;

}

2密码锁

  (lock.pas/c/cpp)

【问题描述】

从前有一个忧桑的故事:农夫郑权涌的奶牛一直从他的农场逃离并且导致了巨额损失。
为了阻止它们逃离,他找来了一只神奇的锁来阻止他的奶牛打开栅栏门。
这个锁有三个密码子,每个都是从1-n的整数(1<=n<=100),1和n是相邻的,因为这些密码子是一个圈。有两组密码能够打开这个锁,一个是农夫郑权涌的,另一个是锁匠的。然而,这个锁有一个小的容错的几率,它会打开只要表盘上的数字位置与任意一个密码上的相应数字位置相差不超过2。比如,如果郑权涌的密码是(1,2,3),锁匠的密码是(4,5,6)。如果你的输入是(1,n,5)(因为这和郑权涌的密码很相近)或者是(2,4,8)(因为这和锁匠的密码很接近),这个锁都会打开,。注意,(1,5,6)无法打开这个锁,因为它和任何一个密码都不接近。
给出郑权涌的密码和锁匠的密码,请找出所有不同的能打开锁的密码的数目。另外,(1,2,3)和(3,2,1)是不同的。

 

【输入】

第一行:一个整数n
第二行:3个用空格分开的整数,代表郑权涌的密码
第三行:3个用空格分开的整数,代表锁匠的密码(很可能和郑权涌的密码相同)

 

【输出】

密码数

 

 

【输入输出样例1

lock.in

lock.out

50

1 2 3

5 6 7

249

 

【时间限制】   

1s

这题很简单,三重循环俩个if

#include<bits/stdc++.h>

using namespace std;

int main()

{

int n,i,j,k,a,b,c,d,e,f,t;

long long o=0;

cin>>n;

cin>>a>>b>>c>>d>>e>>f;

    for(i=1;i<=n;i++)

      for(j=1;j<=n;j++)

        for(k=1;k<=n;k++)

        {

         t=0;

            if((abs(i-d)>n-3||abs(i-d)<3)&&(abs(j-e)>n-3||abs(j-e)<3)&&(abs(k-f)>n-3||abs(k-f)<3)&&t!=1)o++,t=1;

            if((abs(i-a)>n-3||abs(i-a)<3)&&(abs(j-b)>n-3||abs(j-b)<3)&&(abs(k-c)>n-3||abs(k-c)<3)&&t!=1)o++,t=1;

        

        }

    cout<<o;

    return 0;

}