首页 > 其他分享 >蓝桥杯细节补充

蓝桥杯细节补充

时间:2024-03-03 20:11:45浏览次数:26  
标签:const 补充 mid 蓝桥 int 细节 return include

struct m{
    int i,j,k;
    bool operator< (const m & t){
        if(i!=t.i) return i<t.i;
        if(j!=t.j) return j<t.j;
        return k<t.k;
    }
}m[N];
//进行结构体的比较时,重载运算符规定好规则,然后用sort进行排序

  sort(m,m+num);

1221. 四平方和

https://www.acwing.com/problem/content/description/1223/

启发::利用空间换时间、

将四层循环分成两个两层循环,将前面的循环结果进行保存,然后后面的结果进行判断,利用二分取出相应的结果

#include<iostream>
#include<cmath>
#include<algorithm>
using namespace std;
const int N=5000010;
struct m{
    int i,j,k;
    bool operator< (const m & t){
        if(i!=t.i) return i<t.i;
        if(j!=t.j) return j<t.j;
        return k<t.k;
    }
}m[N];


int main()
{
    int n;cin>>n;int num=0;
   for(int i=0;i*i<=n;i++){
       for(int j=i;i*i+j*j<=n;j++){
           m[num++]={i*i+j*j,i,j};
       }
   }
   sort(m,m+num);
   
   for(int i=0;i*i<=n;i++){
       for(int j=i;j*j+i*i<=n;j++){
           int k=n-i*i-j*j;
           int l=0,r=num;
           while(l<r){
               int mid=l+r>>1;
               if(m[mid].i>=k) r=mid;
               else l=mid+1;
           }
           if(m[l].i==k){
               cout<<i<<" "<<j<<" "<<m[l].j<<" "<<m[l].k<<endl;
               exit(0);
           }
       }
   }
    return 0;
}

哈希

#include<unordered_map>//引用头文件


#define x first
#define y second

typedef pair<int, int> PII;

unordered_map<int, PII> S;

S.count(t)  //if t存在返回0

S[t] = {c, d};

if (S.count(t))
{
printf("%d %d %d %d\n", a, b, S[t].x, S[t].y);
return 0;
}

 

标签:const,补充,mid,蓝桥,int,细节,return,include
From: https://www.cnblogs.com/daimazhishen/p/18050598

相关文章

  • P8598 [蓝桥杯 2013 省 AB] 错误票据 题解
    思路考虑将\(id\)从小到大排序,然后从\(2\)下标开始扫描一遍\(id\)数组,若当前的\(id_i-id_{i-1}>1\),则说明当前\(id\)存在断号,输出\(id_i-1\);若当前的\(id_i=id_{i-1}\),则说明当前\(id\)存在重号,输出\(id_i\)。注意断号与重号需要分开计算。#include<b......
  • 2024AcWing蓝桥杯集训·每日一题-差分
    1.[AcWing4262.空调]题目描述FarmerJohn的\(N\)头奶牛对他们牛棚的室温非常挑剔。有些奶牛喜欢温度低一些,而有些奶牛则喜欢温度高一些。FarmerJohn的牛棚包含一排\(N\)个牛栏,编号为\(1…N\),每个牛栏里有一头牛。第\(i\)头奶牛希望她的牛栏中的温度是\(p_i\),而现......
  • 蓝桥杯2020决赛:试题 I 奇偶覆盖
    原题如果不考虑奇偶性,其实就是扫描线的板子。考虑如何处理奇偶:首先在线段树存两个变量\(len_1\)以及\(len_2\),分别表示奇长度和偶长度。再用\(sum\)记录当前两个端点之间被覆盖了多少次。然而我们无法直接获得每一个子区间的具体覆盖数目。所以从奇偶性的特点方面入手。......
  • 并发编程补充:基于多线程实现并发的套接字通信
    服务端:fromsocketimport*fromthreadingimportThreaddefcommunicate(conn):whileTrue:try:data=conn.recv(1024)ifnotdata:breakconn.send(data.upper())exceptConnectionResetError:......
  • 并发编程补充:基于多进程实现并发的套接字通信
    服务端:frommultiprocessingimportProcessfromsocketimport*deftalk(conn):whileTrue:try:data=conn.recv(1024)ifnotdata:breakconn.send(data.upper())exceptConnectionResetError:......
  • 2024AcWing蓝桥杯集训·每日一题-前缀和
    1.[AcWing562.壁画]题目描述Thanh想在一面被均分为\(N\)段的墙上画一幅精美的壁画。每段墙面都有一个美观评分,这表示它的美观程度(如果它的上面有画的话)。不幸的是,由于洪水泛滥,墙体开始崩溃,所以他需要加快他的作画进度!每天Thanh可以绘制一段墙体。在第一天,他可以自由的......
  • 2024AcWing蓝桥杯集训·每日一题-二分
    1.[AcWing503.借教室]题目描述在大学期间,经常需要租借教室。大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室。教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样。面对海量租借教室的信息,我们自然希望编程解决这个问题。我们需要处理接下来\(n\)天......
  • 函数补充
    函数的嵌套在Python中,函数可以互相嵌套,即在一个函数内部定义另一个函数。包裹在外层的叫做外函数,内层的就是内函数。defouter():definner():print("我是inner函数")outer()注意:内部函数不能直接在函数外部调用。调用外部函数后,内部函数也不能在函数外......
  • 第十一届蓝桥杯试题E:排序
    目录题目分析验证代码题目对一个字符串,对它进行冒泡排序使其为升序,例如:对于lan,排序成aln需要交换一次(只能交换相邻的两个字母),对于qiao,排序成aioq就需要交换4次。请找出冒泡排序时恰好需要交换100次的字符串,如果有多个字符串满足条件,则找出最短的那个,如果有多个满足条件而且......
  • P8680 [蓝桥杯 2019 省 B] 特别数的和
    暴力秒了#include<bits/stdc++.h>#defineintlonglong//开longlong是个好习惯usingnamespacestd;boolbaozi(intx){while(x){intt=x%10;if(t==2||t==0||t==1||t==9)//数位判断{returntrue;......