丰收?

(忘了题目了QAQ)

题目描述:

又到了丰收的季节,恰逢小易去牛牛的果园里游玩。
牛午常说他对整个果园的每个地方都了如指掌,小易不太相信,
所以他想考考牛牛。
在果园里有N堆苹果,每堆苹果的数量为ai,小易希望知道从左往
右数第x个苹果是属于哪一堆的。
牛牛觉得这个问题大简单,所以希望你来着他回答。

输入描述:

第一行一个数n(1<=n<=100000)
第二行n个数ai(1<=ai<=1000),表示从左往右数第i堆有多少苹果
第三行一个数m(1<=m<=100000),表示有m次询口。
第四行m个数,表示小易希望知道第qi个苹果属于哪一堆。
 

测试样例:

5
2 7 3 4 9
3
1 25 11

输出

1

5

3

思路:

前缀和+二分

第i个位置表示前i堆苹果总数量,利用二分查找输入苹果所在的位置

代码:

#include <cstdio>
#include <cstring>
#include <cmath>
#include <iostream>
#include <queue>
#include <map>
#include <list>
#include <utility>
#include <set>
#include <algorithm>
#include <deque>
#include <vector>
#define IO ios::sync_with_stdio(false);\
        cin.tie();\
        cout.tie();
using namespace std;
typedef long long ll;
typedef vector<int > vi;
const ll INF = 0x3f3f3f3f;
;
 + ;
int a[MAX];
int front_a[MAX];
int main()
{
    int n,m;
    scanf("%d",&n);
     ; i <= n; i++)
    {
        scanf("%d", a + i );
        front_a[i] = front_a[i-] + a[i];
    }
    scanf("%d",&m);
    while(m--) {
        int q;
        scanf("%d",&q);
        ,right = n;

        while(left < right) {
            ;
            if(front_a[middle] < q )
            {
                left = middle+;
            }
            else if(front_a[middle]>q){
                right = middle;
            }else {
                left = middle;
                break;
            }
        }
        printf("%d\n",left);
    }
    ;
}
/*
5
2 7 3 4 9
3
1 25 11
*/

题目描述

小易有一些立方体,每个立方体的边长为1,他用这些立方体搭了一些塔
现在小男定义:这些场的不稳定值为它们之中最高的塔与最低的塔的高度差,
小易想让这些塔尽量稳定,所以他进行了如下操作:每次从基座楼上取下块立方体并把它到号空塔上,
注意,小题不会把立方体放到它原本的那座塔上,因为他认为这样无意义

输入描述

第一行一个n(1<=n<=100),一个k(1<=k<=1000)

第二行ai(1<=ai<=10000)代表每个塔的高度

输出描述

第一行输出一个s,一个m,s代表最低的不稳定性,m为操作步数

接下来m行每行代表a塔向b塔移动一个单位

测试样例:

样例输入:

3 2
5 8 5

样例输出

0 2

2 1

2 3

思路:

因为数据量不大,全程模拟,先将所有的塔从低到高排序 将最高塔移动一个单位给最低塔 再排序移动 最多循环k次

如果最低与最高塔的差小于等于1,直接退出。

PS:描述可能有差池,请见谅 还有 这仅代表个人思路 笔试过程中仅通过20%(听说此题已重判,故妄自菲薄的贴上代码,望大神指正)

代码:

#include <cstdio>
#include <cstring>
#include <cmath>
#include <iostream>
#include <queue>
#include <map>
#include <list>
#include <utility>
#include <set>
#include <algorithm>
#include <deque>
#include <vector>
#define IO ios::sync_with_stdio(false);\
        cin.tie();\
        cout.tie();
using namespace std;
typedef long long ll;
typedef vector<int > vi;
const ll INF = 0x3f3f3f3f;
;
 + ;
typedef struct node {
    int pos;
    int high;
} node;
node High[N];
bool cmp(node a , node b) {
    return a.high < b.high;
}
int main()
{
    int n,k;
    scanf("%d%d",&n,&k);
    ; i <= n; i++) {
        scanf("%d",&High[i].high);
        High[i].pos = i;
    }
    queue <pair<int,int> > q;
    ,num = ;
    sort(High +  , High+n+,cmp);
    ;
     ; i < k; i++) {

        ].high<=) {
            value = High[n].high - High[].high;
            flag = ;
            break;
        }else {
            High[n].high--;
            High[].high++;
            num++;
            q.push(pair<].pos));
        }
        sort(High +  , High+n+,cmp);
    }
    ) {
        value = High[n].high - High[].high;
    }
    printf("%d %d\n",value,num);
    while(!q.empty()) {
        int x = q.front().first;
        int y = q.front().second;
        q.pop();
        printf("%d %d\n",x,y);
    }
    ;
}
/*
3 2
5 8 5*/

整理房间

题目描述

又到了周末,小易的房间乱得一团糟。
他希望将地上的杂物稍微整理下,使每团杂物看起来都紧凑一些, 没有那么乱。
地上一共有n团杂物,毎团杂物都包含4个物品。第i物品的坐标用(ai,bi)表示,小易毎次都可以将
它绕着(xi,yi)逆时针旋转90°,这将消耗他的一次移动次数。如果一团杂物的4个点构成了一个面
积不为0的正方形,我们说它是紧凑的。
因为小易很懒,所以他希望你帮助他计算一下每团杂物最少需要多少步移动能使它変得紧凑。

输入描述

第一行一个数(1 <= n <= 100),表示杂物的团数。
接下来4n行,毎4行表示一团杂物,毎行4个数xi, yi, ai, bi(-10^4<= xi, yi,
ai,bi <= 10^4),表示第i个物品旋转的中心点坐标和它本身的坐标。
輸出描述:
n行,毎行1个数,表示最少移动次数。

示例1
输入
4
1 1 0 0
-1 1 0 0
-1 1 0 0
1 -1 0 0
-2 1 0 0
-1 1 0 0
1 -1 0 0
1 1 0 0
-1 1 0 0
-1 1 0 0
-1 1 0 0
2 2 0 1
-1 0 0 -2
3 0 0 -2
-1 1 -2 0
输出
1
-1
3
3

说明
对于第一团杂物,我们可以旋转第二个或者第三个物品1次。

思路:

暴力枚举每团杂物4 ^ 4次旋转

代码:

来自牛客大神的代码。

作者:NotDeep
链接:https://www.nowcoder.com/discuss/92989?type=0&order=0&pos=6&page=0
来源:牛客网

#include <bits/stdc++.h>
using namespace std; 
struct point {
    int x, y;
    point(, ) : x(x), y(y) {}
    point operator+(const point &rhs) const {
        return point(x + rhs.x, y + rhs.y);
    }
    point operator-(const point &rhs) const {
        return point(x - rhs.x, y - rhs.y);
    }
    point rotate() { return point(-y, x); }
    point rotate(const point &o) const { return o + (*this - o).rotate(); }
    bool operator==(const point &rhs) const { return x == rhs.x && y == rhs.y; }
};
 
bool check(const point &a, const point &b) {
     && a.y ==  || b.x ==  && b.y == ) return false;
    if (a.x * a.x + a.y * a.y != b.x * b.x + b.y * b.y) return false;
    ) return false;
    return true;
}
 
int main() {
    int n;
    cin >> n;
    while (n--) {
        point p[], o[], a[];
        ; i < ; i++)
            scanf("%d %d %d %d", &p[i].x, &p[i].y, &o[i].x, &o[i].y);
        ;
        int x, y, z, w;
        , a[] = p[]; x < ; x++) {
            , a[] = p[]; y < ; y++) {
                , a[] = p[]; z < ; z++) {
                    , a[] = p[]; w < ; w++) {
                        int cost = x + y + z + w;
                        ] + a[] == a[] + a[] &&
                                check(a[] - a[], a[] - a[]) ||
                            a[] + a[] == a[] + a[] &&
                                check(a[] - a[], a[] - a[]) ||
                            a[] + a[] == a[] + a[] &&
                                check(a[] - a[], a[] - a[])) {
                             || res > cost) res = cost;
                        }
                        a[] = a[].rotate(o[]);
                    }
                    a[] = a[].rotate(o[]);
                }
                a[] = a[].rotate(o[]);
            }
            a[] = a[].rotate(o[]);
        }
        printf("%d\n", res);
    }
    ;
}

网易2019校招C++研发工程师笔试编程题的更多相关文章

  1. 去哪儿网2017校招在线笔试(前端工程师)编程题及JavaScript代码

    编程题很简单.整个试卷结构为: 一.问答题: 对前端的理解,了解哪些框架库? 二.在线编程题:身份证分组 如下第一道:身份证分组 三.在线编程题:身份证分组.统计字符.酒店价格(三选二) 如下第二三四 ...

  2. 网易校招C++研发工程师笔试题

    选择题: mysql主从复制,server_id问题 mysql key_len 找以.conf为结尾的文件 问答题: 实现一个超大整数的类 并实现加减法功能 用string实现大数加减法(博客里以前 ...

  3. 网易2019校招内推编程题-瞌睡-C++实现

    [编程题] 瞌睡 时间限制:1秒 空间限制:262144K 小易觉得高数课太无聊了,决定睡觉.不过他对课上的一些内容挺感兴趣,所以希望你在老师讲到有趣的部分的时候叫醒他一下.你知道了小易对一堂课每分钟 ...

  4. 网易2019校招内推编程题-俄罗斯方块-C++实现

    [编程题] 俄罗斯方块 时间限制:1秒 空间限制:262144K 小易有一个古老的游戏机,上面有着经典的游戏俄罗斯方块.因为它比较古老,所以规则和一般的俄罗斯方块不同.荧幕上一共有 n 列,每次都会有 ...

  5. 网易2016研发project师编程题

    http://www.nowcoder.com/test/970447/summary [编程题] 小易的升级之路 小易常常沉迷于网络游戏.有一次,他在玩一个打怪升级的游戏,他的角色的初始能力值为 a ...

  6. 2017 CVTE春招内推专场 C/C++软件开发岗笔试编程题

    先来一波吐槽:选择题全是不定项选择,考的内容在我看来,"反正我接受唔到咯". 比如: 1.Windows操作系统某个通信机制(具体题目忘了,反正答案我选了个熟悉的名词"消 ...

  7. HW2018校招研发笔试编程题

    1. 数字处理 题目描述:给出一个不多于5位的整数,进行反序处理,要求 (1)求出它是几位数 (2)分别输出每一个数字(空格隔开) (3)按逆序输出各位数字(仅数字间以空格间隔,负号与数字之间不需要间 ...

  8. 网易2016年研发project师编程题(2)

    序 网易互联网的实习笔试立即就開始了,做几个练习题熟悉熟悉~嘿嘿~ 题目一: 小易的升级之路 小易常常沉迷于网络游戏.有一次,他在玩一个打怪升级的游戏,他的角色的初始能力值为 a.在接下来的一段时间内 ...

  9. 百度2019校招Web前端工程师笔试卷(9月14日)

    8月27日晚,在实习公司加班.当时正在调试页面,偶然打开百度首页console,发现彩蛋,于是投了简历. 9月14日晚,七点-九点,在公司笔试. 笔试题型(有出入): 一.单选20道 1.难度不难,考 ...

随机推荐

  1. C#学习之自定义数组及其排序

    在C#中对数组的定义比较灵活.这里着重说一下自定义数组和Array类的排序. 在Array类中通过属性Length就可以获取整个数组中数据的数量,可以通过foreach迭代数组. 使用Rank属性可以 ...

  2. C++ 什么是多态

    一.什么是多态(Polymorphism) 多态(Polymorphism)是面向对象(Object-Oriented,OO)思想"三大特征"之一,其余两个分别是封装(Encaps ...

  3. CMDB资产管理系统开发【day26】:CMDB上节回顾

    一.上节知识点回顾 服务器设计了一个表结构 开发了一个客户端 二.后台创建缓存区表 客户端连接服务器,在服务器的下面看报错信息 因为URL都没有写,所以我找不到呀 1.在MadKing\url.py ...

  4. 前后端分离中,gulp实现头尾等公共页面的复用 前言

    前言 通常我们所做的一些页面,我们可以从设计图里面看出有一些地方是相同的.例如:头部,底部,侧边栏等等.如果前后端分离时,制作静态页面的同学,对于这些重复的部分只能够通过复制粘贴到新的页面来,如果页面 ...

  5. JSTL 入门: 表达式语言

    转载自:http://www.ibm.com/developerworks/cn/java/j-jstl0211/ JavaServer Pages(JSP)是用于 J2EE 平台的标准表示层技术.J ...

  6. 使用jquery.qrcode生成二维码及常见问题解决方案

    转载文章  使用jquery.qrcode生成二维码及常见问题解决方案 一.jquery.qrcode.js介 jquery.qrcode.js 是一个纯浏览器 生成 QRcode 的 jQuery ...

  7. LightOJ 1419 – Necklace Polya计数+费马小定理求逆元

    题意:给你n个珠子可以染成k种颜色,旋转后相同的视为一种,问共有几种情况 思路:开始按照一般的排列组合做发现情况太多且要太多运算,查了下发现此题是组合中Polya定理模板题- 学的浅只能大致一说公式S ...

  8. 【BZOJ3339&&3585】mex [莫队][分块]

    mex Time Limit: 20 Sec  Memory Limit: 128 MB[Submit][Status][Discuss] Description 有一个长度为n的数组{a1,a2,. ...

  9. Codeforces Round #411 (Div. 2) A-F

    比赛时候切了A-E,fst了A Standings第一页只有三个人挂了A题,而我就是其中之一,真™开心啊蛤蛤蛤 A. Fake NP time limit per test 1 second memo ...

  10. 7.0docker镜像和仓库

    repository:镜像的仓库 registry :docker组件的仓库,docker镜像的存储服务 tag :镜像的标签 例:ubuntu:14.04  ubuntu:latest 删除镜像 d ...