【上机】模拟赛题(三)

拉到最下面可以看到题解哦!


A.找画笔

时间: 空间:

题目描述

豆豆对数字的执着,让他在理科领域游刃有余,但他近乎疯狂的投入也使父母有些担心,为了让孩子能够全面发展,决定拓宽他的学习领域。正好家旁边有个绘画培训中心就给豆豆报了名,学习绘画的第一天就让豆豆产生了浓厚的兴趣,还主动要求买了很多很多的画笔,画笔有多种颜色,豆豆有一个习惯就是同种颜色的画笔就买两支,一支备用,就这样总共攒了 N 支画笔( N 是偶数且 )。
可是数字的敏感无孔不入,豆豆脑里蹦出了一个奇怪的问题:如果蒙上眼任意拿走一支画笔,分析剩下的N-1支画笔找出拿走了哪种颜色,你能回答他吗?

输入格式

第一行:一个整数表示剩下的画笔个数就是题目描述中的 N-1
第二行:N-1个用空格隔开的正整数 ( ),表示剩下的画笔的颜色编号

输出格式

一行一个整数P,表示拿走的画笔的颜色编号

样例数据

【输入】

9
1 1 9 11 5 3 11 5 9

【输出】

3

B.三角形个数

时间: 空间:

题目描述

小圆点拉着太阳的胡须,在天空中晃来晃去,好不痛快。
可是,他手一松,“啪”从空中摔了下来,一下子摔到地上,有两条射线被小圆点扯掉下来啦。
“这怎么办呢?”小圆点对躺在地上的两条射线说。
“不要紧,我们请圆规大叔帮忙,让他把两条射线接起来。”这时,大铅笔博士出现了,笑眯眯地指着身后高高个子,戴一顶小黑帽子的圆规说。
圆规大叔弯了弯腰说:“能倒能,不过,连起来就不见得是一条直线了。”
“那是怎么回事呢?”小圆点问。
“我们来试一下就知道了。”圆规大叔边说边拉起了两条射线,把它们连在一起,结果呢?就连成了一个角!
现给出n个角的度数,从中选出度数各不相同的三个角来组成一个三角形,问一共有多少种选法?

输入格式

第一行:一个整数n(3 <= n <= 200000)。
第二行:n个空格隔开的整数ai(0 < ai < 180),表示每个角的度数。

输出格式

只有一个整数,表示能组成度数各不相同的三角形的选法总数。

样例数据

【输入】

5
20 20 30 130 140

【输出】

2

数据规模与约定

30%的数据:n≤20
50%的数据:n≤100
80%的数据:n≤5000
100%的数据:n≤200000


C.宝箱密码

题目描述

海盗王将自己的宝藏藏在了一个宝箱里,只有一次开锁的机会,密码输错宝箱就会永久锁死。
小明意外的得到了这个宝箱,经过详细的研究,他发现海盗王很喜欢数字129,并且在图书馆里找到了海盗王的一段手稿,上面有一段描述:“那些除不完的数,就是我喜欢的”,然后是一大串包含数字的字符串。于是,小明大胆的猜测,从字符串中提炼所有的数字串,所有数字串对129求余,将这些余数加起来,就是宝箱的密码。
编写程序,输入一个字符串,提取里面所有的完整数字串,对129求余,将所有的余数累加起来输出。

输入格式

一行包含多个数字串的字符串(可能有空格)

输出格式

数字串对129求余,余数相加的结果

样例数据

【输入1】

Love me, love my dog, 54321and678

【输出1】

45

【样例1说明】
54321%129=12, 678%129=33, 结果为45。
【输入2】

hello, 00054321 , my phone is 9910。

【输出2】

118

【样例2说明】
54321%129=12,9910%129=106,结果为118
前面的0对结果没有用

数据规模与约定

40%的数据,字符串里的完整数字串长度<=9位
60%的数据,字符串里的完整数字串长度<=19位
100%的数据,字符串里的完整数字串长度<=30位


D.走迷宫

时间: 空间:

题目描述

一个迷宫,每次可按上左下右任一方向移动一个格子,每个格子最多经过1次(对同一条路径来说),有些格子被障碍物挡住了不能到达。
请你编程输出从给定起点到终点的最短距离(既路径上经过的格子个数),如果到达不了就输出-1。

输入格式

第一行三个正整数:n m分别表示迷宫的行和列,k表示障碍点个数
第二行四个正整数:起点坐标sx sy和终点坐标fx fy
接下来k行的数据,每行两个数表示障碍物所在的行列坐标

输出格式

一个正整数,表示最短距离
如果没有一条可行的路则输出-1

样例数据

【输入】

5 6 8
1 1 5 6
1 2
1 3
1 5
3 1
3 2
3 6
4 6
5 4

【输出】

9

数据规模与约定

1<=n, m <= 700


建议先自己做再看题解哦!
建议先自己做再看题解哦!
建议先自己做再看题解哦!
建议先自己做再看题解哦!
建议先自己做再看题解哦!
建议先自己做再看题解哦!
建议先自己做再看题解哦!
建议先自己做再看题解哦!
建议先自己做再看题解哦!
建议先自己做再看题解哦!


A.找画笔

【分析】

根据,。所以就是将所有数进行加法运算。

【代码】

#include
using namespace std;
const int N=2e5+5,BIG=(1<<31)-1,SMALL=-(1<<31);

int main()
{
    int a,b,c,d,e,f;
    cin>>a>>b;
    for(int i=1; i>c;
        b=b^c;
    }
    cout<

B.三角形个数

【代码】

#include
using namespace std;
const int N=2e5+5,BIG=(1<<31)-1,SMALL=-(1<<31);
int a[N],n;
long long tong[180],tot;//定义一个桶

int main()
{
    cin>>n;
    for(int i=1; i<=n; i++)
    {
        cin>>a[i];
        tong[a[i]]++;
    }
    for(int i=1; i<=60; i++)
        for(int j=i+1; j<=90; j++)
        {
            int k=180-i-j;
            if(j

C.宝箱密码

【代码】

#include
using namespace std;
const int N=2e5+5,BIG=(1<<31)-1,SMALL=-(1<<31);

int main()
{
    string s;
    int l,sum=0,n;
    getline(cin,s);//注意整行读入
    s=" "+s+" ";//前后加空格
    l=s.size();//取总长
    for(int i=0; is[i-1]||s[i-1]>'9')//新的数字开始
                n=s[i]-'0';
            else
                n=(n*10+s[i]-'0')%129;//每读一位就取余
        }
        else if('0'<=s[i-1]&&s[i-1]<='9')//如果不是数字并且前一个是数字那么这个数字读入完毕
            sum+=n;//累加
    }
    cout<

D.走迷宫

【分析】

队列queue

【代码】

#include
using namespace std;
const int N=7e2+5,he=180,BIG=(1<<31)-1,SMALL=-(1<<31);
bool a[N][N],p[N][N];
//a是原地图,p是判断是否计算过这个点
int n,m;
int dir[4][2]= {{-1,0},{1,0},{0,-1},{0,1}};//四个方向

struct node//队列
{
    int x,y;
    int step;
};
queue < node > b;
void bfs(int x1,int y1,int x2,int y2)
{
    p[x1][y1]=1;
    node nmnm;
    nmnm.step=0,nmnm.x=x1,nmnm.y=y1;
    b.push(nmnm);
    while(!b.empty())
    {
        nmnm=b.front();//取
        b.pop();//弹出
        if(nmnm.x==x2&&nmnm.y==y2)//判断终点
        {
            cout<0&&nx<=n&&ny>0&&ny<=m&&p[nx][ny]==0&&a[nx][ny]==0)
            {//越界&&计算过&&能走
                node nmnm1;
                p[nx][ny]=1;
                nmnm1.x=nx;
                nmnm1.y=ny;
                nmnm1.step=nmnm.step+1;
                b.push(nmnm1);//存入
            }
        }
    }
    cout<<-1<>n>>m>>c>>d>>e>>f>>g;
    for(int i=1; i<=c; i++)
    {
        cin>>x1>>y1;
        a[x1][y1]=1;
    }
    bfs(d,e,f,g);
    return 0;
}

你可能感兴趣的:(【上机】模拟赛题(三))