首页 > 编程语言 >蓝桥杯十一届JavaA组-C++解题

蓝桥杯十一届JavaA组-C++解题

时间:2023-06-07 14:08:06浏览次数:43  
标签:count access JavaA idx int C++ 蓝桥 dfs return


随便乱写,目前正确性未知

C.本质上升序列

#include<bits/stdc++.h>

using namespace std;

bool access[4][4];

int dfs(int idx, int x, int y)
{
	if(x<0 || y<0 || x>=4 || y>=4)	return 0;
	if(access[y][x])	return 0;
	if(idx>=15)	return 1;
	int count=0;
	access[y][x]=true;
	count+=dfs(idx+1, x+1, y);
	count+=dfs(idx+1, x, y+1);
	count+=dfs(idx+1, x-1, y);
	count+=dfs(idx+1, x, y-1);
	access[y][x]=false;
	return count;
}

int main(){

	int count =0;
	for(int i=0;i<16;i++)
	{
		count+=dfs(0, i%4, i/4);
	}
	cout<<count;
}

H. 奇偶覆盖

线段树初步版本,未完善

#include<bits/stdc++.h>

using namespace std;

const int N=1e5+5;

struct node
{
    int l,r,h;
    bool operator< (const node& a)const
    {
        return h<a.h;
    }
}e[N*2];

int a[N*2];
int sum[N*2*4],flag[N*2*4];

void cal(int l,int r,int root)
{
    sum[root]=(a[r]-a[l])-sum[root];
}

void pushup(int root)
{
    sum[root]=sum[root<<1]+sum[root<<1|1];
}

void pushdown(int l,int r,int root)
{
    if(!flag[root])
        return ;
    flag[root<<1]^=1;
    flag[root<<1|1]^=1;
    int mid=l+r>>1;
    cal(l,mid,root<<1);
    cal(mid,r,root<<1|1);
    flag[root]=0;
}

void update(int l,int r,int root,int ql,int qr)
{
    if(l>=ql&&r<=qr)
    {
        cal(l,r,root);
        flag[root]^=1;
        return ;
    }
    pushdown(l,r,root);
    int mid=l+r>>1;
    if(mid>ql)
        update(l,mid,root<<1,ql,qr);
    if(mid<qr)
        update(mid,r,root<<1|1,ql,qr);
    pushup(root);
}

int main()
{
    int n;
    scanf("%d",&n);
    int x1,x2,y1,y2,all=0;
    for(int i=1;i<=n;i++)
    {
        scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
        e[2*i-1].l=min(x1,x2);
        e[2*i-1].r=max(x1,x2);
        e[2*i-1].h=min(y1,y2);
        e[2*i].l=min(x1,x2);
        e[2*i].r=max(x1,x2);
        e[2*i].h=max(y1,y2);
        a[2*i-1]=x1,a[2*i]=x2;
    }
    sort(a+1,a+1+n*2);
    all=unique(a+1,a+1+n*2)-a-1;
    for(int i=1;i<=2*n;i++)
        e[i].l=lower_bound(a+1,a+1+all,e[i].l)-a,e[i].r=lower_bound(a+1,a+1+all,e[i].r)-a;
    sort(e+1,e+1+2*n);
    ll ans=0;
    for(int i=1;i<=2*n;i++)
    {
        ans+=sum[1]*(e[i].h-e[i-1].h);
        update(1,all,1,e[i].l,e[i].r);
    }
    printf("%lld\n",ans);
}


标签:count,access,JavaA,idx,int,C++,蓝桥,dfs,return
From: https://blog.51cto.com/u_15567308/6431248

相关文章

  • C++ 日期 & 时间
     C++标准库没有提供所谓的日期类型。C++继承了C语言用于日期和时间操作的结构和函数。为了使用日期和时间相关的函数和结构,需要在C++程序中引用<ctime>头文件。有四个与时间相关的类型:clock_t、time_t、size_t 和 tm。类型clock_t、size_t和time_t能够把系统时间......
  • C++ 引用 vs 指针
     引用很容易与指针混淆,它们之间有三个主要的不同:不存在空引用。引用必须连接到一块合法的内存。一旦引用被初始化为一个对象,就不能被指向到另一个对象。指针可以在任何时候指向到另一个对象。引用必须在创建时被初始化。指针可以在任何时间被初始化。https://www.lekaowan......
  • C++ 中创建引用
     试想变量名称是变量附属在内存位置中的标签,您可以把引用当成是变量附属在内存位置中的第二个标签。因此,您可以通过原始变量名称或引用来访问变量的内容。例如:inti=17;我们可以为i声明引用变量,如下所示:int&r=i;double&s=d;在这些声明中,&读作引用。因此,第一个......
  • 【面试】2023CVTE C++软开实习
    2023CVTEC++软开实习一面总结记录面试官看头像挺年轻的,不过他没有开摄像头,不能一睹芳容哈哈哈哈,面试过程中也很和蔼,“噢噢,了解~”是我听到最多的;总共50分钟左右,前二十分钟自我介绍+拷打项目,后面拷打基础,没有敲代码环节;第一次面试,一开始很紧张,后面说着话就又感觉没什么了,还是......
  • C++11中智能指针的原理、使用、实现
     目录理解智能指针的原理智能指针的使用智能指针的设计和实现1.智能指针的作用       C++程序设计中使用堆内存是非常频繁的操作,堆内存的申请和释放都由程序员自己管理。程序员自己管理堆内存可以提高了程序的效率,但是整体来说堆内存的管理是麻烦的,C++11中引入了智能指针的......
  • C++ 友元函数
    类的友元函数是定义在类外部,但有权访问类的所有私有(private)成员和保护(protected)成员。尽管友元函数的原型有在类的定义中出现过,但是友元函数并不是成员函数。友元可以是一个函数,该函数被称为友元函数;友元也可以是一个类,该类被称为友元类,在这种情况下,整个类及其所有成员都是友......
  • C++ 类 & 对象
    一、C++类&对象C++类定义定义一个类需要使用关键字class,然后指定类的名称,并类的主体是包含在一对花括号中,主体包含类的成员变量和成员函数。定义一个类,本质上是定义一个数据类型的蓝图,它定义了类的对象包括了什么,以及可以在这个对象上执行哪些操作。关键字public确定......
  • 侯捷C++STL源码分析
    STL六大部件容器(Containers):放东西,需要占用内存。分配器(Allocators):支持容器。算法(Algorithms):操作容器里面的数据。迭代器(Iterators):容器和算法之间的桥梁,泛化的指针。适配器(Adapters)仿函数(Functors)#include<vector>#include<algorithm>#inclu......
  • C++容器4 关联容器
    关联容器的类型定义关联容器pair关联容器的类型别名 set的解引用是常量,添加元素 map和set适合关键字不存在才插入,不会更改关键字的值。你可以随便取出一个元素的值,也可以随便删除,但不能随便修改,因为红黑树也就平衡树的特性决定了修改特别麻烦,改变了值,他们关联的......
  • C++面试八股文:static和const的关键字有哪些用法?
    某日二师兄参加XXX科技公司的C++工程师开发岗位第7面:面试官:C++中,static和const的关键字有哪些用法?二师兄:satic关键字主要用在以下三个方面:1.用在全局作用域,修饰的变量或者函数为静态的,限制在本文件内使用。2.方法内修饰修饰静态局部变量,在第一次访问的时候初始化。3.内类修饰......