zoukankan      html  css  js  c++  java
  • 2019年1月31日训练日记

    今天做的题目比较少,发现不会的有点多。。。
    今天写两个题目:2129逆置换,2119 吃龙虾。

    2129逆置换

    输入一个1到n的排列,p[1], p[2], …, p[n],
    即1到n都出现了1次的一个长度为n的数组p。
    对于每个满足1 <= i <= n的i,求下标j使得p[j] = i。
    1 <= n <= 100000
    输入
    第一行一个整数n,表示排列长度
    接下来n行,每行一个整数p[i],表示排列的内容。
    输出
    第一行输出一个排列长度n,为了方便造数据。
    输出共n行,其中第i行包含一个整数j,使得p[j]=i。
    输入样例

    4
    4
    3
    1
    2
    

    输出样例

    4
    3
    4
    2
    1
    

    代码一:

    #include<iostream>
    #include<stdio.h>
    #include<cstring>
    #include<cmath>
    #include<algorithm>
    #include<string>
    #include<vector>
    #include<iomanip>
    using namespace std;
    int a[100001];
    int main()
    {
        int n;
        cin>>n;
        for(int i=1;i<=n;i++)
        cin>>a[i];
        cout<<n<<endl;
        for(int i=1;i<=n;i++)
        {
            for(int j=1;j<=n;j++)
            {
                if(a[j]==i)
                cout<<j<<endl;
                continue;
            }
        }
        return 0;
    }
    

    超时。。。

    代码二:

    #include<iostream>
    #include<stdio.h>
    #include<cstring>
    #include<cmath>
    #include<algorithm>
    #include<string>
    #include<vector>
    using namespace std;
    int main()
    {
        int n;
        int a[100001],b[100001];
        cin>>n;
        for(int i=1;i<=n;i++)
        {
            cin>>a[i];
            b[a[i]]=i;
        }
        cout<<n<<endl;
        for(int i=1;i<=n;i++)
            cout<<b[i]<<endl;
        return 0;
    }
    

    2119 吃龙虾

    小瓜非常喜欢吃龙虾,一个阳光明媚的星期天早晨,他来到海鲜市场采购龙虾。海鲜市场里一共有n只龙虾,每只龙虾重ai克。由于小瓜非常挑剔,他只吃重大于等于m克的龙虾,于是他打算把所有重大于等于m克的龙虾买回家。请你帮小瓜算一下他一共将会买多少克龙虾。
    输入
    第一行两个整数n(1<=n<=100000),m(1 <=m <= 100000),表示市场中有n只龙虾,小瓜只吃重大于等于m克的龙虾。
    接下来n行,每行一个整数ai(0<=ai<100000),表示第i只龙虾重ai克。
    输出
    一行一个整数,表示小瓜最后一共会买的龙虾的克数。
    输入样例

    5 5
    4
    6
    2
    3
    8
    

    输出样例

    14
    

    代码如下:

    #include<iostream>
    #include<stdio.h>
    #include<cstring>
    #include<cmath>
    #include<algorithm>
    #include<string>
    #include<vector>
    #include<iomanip>
    using namespace std;
    int h[100001];
    int main()
    {
        int a,b;
        long long s=0;
        cin>>a>>b;
        for(int i=1;i<=a;i++)
            cin>>h[i];
        for(int i=1;i<=a;i++)
        {
            if(h[i]>=b)
                s+=h[i];
        }
        cout<<s<<endl;
        return 0;
    }
    

    此题代码中的s要定义为long long 形式,定义为int有一组数据越界了,会出现错误。
    其中那组数据好大。。。
    本想复制粘贴一下。。。无奈数据太多太大,网页直接卡死。。。

  • 相关阅读:
    counter的使用
    Keras保存模型
    pytorch中F.avg_pool1d()和F.avg_pool2d()
    为什么要进行batchNormalization?
    利用Ajax完成前后端数据传输有关知识(day67)
    ORM中choice参数的设计、Ajax介绍(day66)
    聚合分组查询、F与Q查询、常用字段知识(day65)
    ORM数据库查询操作(单表,多表)(day64)
    CBV源码剖析,模板语法(day63)
    小程序加入购物车抛物线效果
  • 原文地址:https://www.cnblogs.com/study-hard-forever/p/12130070.html
Copyright © 2011-2022 走看看