首页 > 其他分享 >牛客练习赛110

牛客练习赛110

时间:2023-04-22 19:56:37浏览次数:41  
标签:练习赛 满足要求 int long 牛客 110 指针

A.嘤嘤的签到

双指针+算贡献

用cnt[]来记录当前维护区间1和4的数量,当当前区间不满足要求则移动左指针直到满足要求,再加上贡献即可。

当然也可以记录最后的1和4的位置,这样他们位置中较小的那一个的后一个位置就是能满足要求的区间的最左端的左指针,

但是该方法就没上一个那么通用了。

B.嘤嘤的猫娘

贪心:按价格从大到小排列即可,数量随意。

C.嘤嘤的风车

注意圆心与半径,同时注意对称性。

#include<bits/stdc++.h>

using namespace std;

#define endl '\n'
typedef long long LL;
typedef pair<int,int> PII;
const int INF=0x3f3f3f3f;

int o,r;//圆心,半径

void dfs(int n,vector<string>&g){
    if(!n)return;
    r=2<<n;
    if(n&1){
        for(int i=-r/2;i<=0;i++)
            g[o+i-r/2][o+i+r/2]=g[o-i+r/2][o-i-r/2]=g[o+i][o-i-r]=g[o-i][o+i+r]='*';
    }else{
        for(int i=-r/2;i<=0;i++)
            g[o+i-r/2][o-i-r/2]=g[o-i+r/2][o+i+r/2]=g[o+i][o+i+r]=g[o-i][o-i-r]='*';
    }
    dfs(n-1,g);
}

int main(){
    ios::sync_with_stdio(false);
    cin.tie(0);
    int n;
    cin>>n;
    o=r=2<<n;
    vector<string>g(o*2+1,string(o*2+1,' '));
    for(int i=-r;i<=r;i++)g[o+i][o]=g[o][o+i]='*';
    for(int i=-r/2;i<=r/2;i++)g[o+i][o+i]=g[o+i][o-i]='*';
    dfs(n,g);
    for(auto s:g){
        cout<<s<<endl;
    }
    return 0;
}

D.

 

标签:练习赛,满足要求,int,long,牛客,110,指针
From: https://www.cnblogs.com/F-beginner/p/17331366.html

相关文章

  • 牛客网——实现二叉树先序、中序和后序遍历
    title:牛客网——实现二叉树先序、中序和后序遍历题目描述:分别按照二叉树先序,中序和后序打印所有的节点。示例:输入:{1,2,3}返回值:[[1,2,3],[2,1,3],[2,3,1]]备注:$$n\leqslant10^6$$代码如下:(照着别人的代码敲的,待重新实现一遍)/***structTreeNode{* int......
  • 牛客网——数组中出现次数超过一半的数字
    title:牛客网——数组中出现次数超过一半的数字题目描述:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。示例:输入[1,2,3,2,2,2......
  • 牛客小白月赛71 补题记录
    AB:略C:可以转化为比较对数,然后直接模拟即可(longdouble128位表示范围\(-1.2\times10^{-4932}~1.2\times10^{4932}\))代码如下:#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;//------------------------intmain(void){ ios::sync_with_stdi......
  • 1110 完全二叉树
    给定一个树,请你判断它是否是完全二叉树。输入格式第一行包含整数 N,表示树的结点个数。树的结点编号为 0∼N−1。接下来 N 行,每行对应一个结点,并给出该结点的左右子结点的编号,如果某个子结点不存在,则用 - 代替。输出格式如果是完全二叉树,则输出 YES 以及最后一个结点......
  • 1102 反转二叉树
    以下是来自 MaxHowell@twitter 的内容:谷歌:我们的百分之九十的工程师都使用你编写的软件,但是你连在白板上反转二叉树都做不到,还是滚吧。现在,请你证明你会反转二叉树。输入格式第一行包含一个整数 N,表示树的结点数量。所有结点编号从 0 到 N−1。接下来 N 行,每行对......
  • 1106
    供应链是由零售商,经销商和供应商构成的销售网络,每个人都参与将产品从供应商转移到客户的过程。整个销售网络可以看作一个树形结构,从根部的供应商往下,每个人从上一级供应商中买入商品后,假定买入价格为 P,则会以高出买入价 r% 的价格向下出售。只有零售商(即叶节点)可以直接将产品......
  • 《rv1109 部署yolov5训练模型汇总》
    环境以及相关软件版本:yolov5(v5.0)、Ubuntu18.04、rknn-toolkit1.7.3、rv1109  一.yolov5环境安装1conda安装1.1Anaconda安装包:在浏览器中打开 https://www.anaconda.com/products/individual 下载适合你的操作系统的Anaconda安装包(Python版本根据需要选择......
  • [牛客]链表分割
    编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前。牛客链接最简单思路因为头插必然改变顺序,所以使用尾插大于的尾插到一个链表小于的尾插到一个链表然后链接起来使用哨兵位的头结点,防止太多问题的产生/*structListNode{intval;struc......
  • 【230419-5】在某种信息传输过程中,用4个数字的一个排列表示1个信息,不同排列表示不同信
    ......
  • How Many O's? UVA - 11038
    写下区间[a,b]的所有数 ,问一共有多少个0 #include<iostream>#include<cstring>#include<vector>usingnamespacestd;#defineintlonglongintn,f[40][40][2][2];vector<int>a;intdfs(intx,intcnt0,intflg,intlead){ if(x<0){ i......