MySQL的查询完结,vju树状题组完结,cf补题

目录

MySQL

查询

比较条件

判空

逻辑条件

模糊条件

where in

聚合查询

排序查询

vju

线段树OR树状数组 - Virtual Judge

cf

Problem - A - Codeforces

Problem - A - Codeforces

Problem - B - Codeforces

周总结


MySQL

查询

比较条件

 

SELECT *FROM student WHERE age>12;

注意:如果查询后只需要出现其中几列,在*这个位置写上要查询的列。 

判空

SELECT device_id,gender,age,university FROM user_profile WHERE age is not NULL;

作用是剔除为空的数据。

逻辑条件

SELECT device_id,gender,age,university,gpa FROM user_profile
 WHERE  GPA>3.5 and gender='male';

 GPA大于3.5的男性

SELECT device_id,gender,age,university,gpa FROM user_profile
 WHERE  GPA>3.7 or university='北京大学';

GPA大于3.7或者学校为北京大学的学生

模糊条件

SELECT * FROM student WHERE name LIKE '%三%';

 表示查找student这个表中的名字带有‘三’的数据。

where in

select device_id,gender,age,university,gpa from user_profile
where university in('北京大学','复旦大学','山东大学');

筛选出学校为'北京大学','复旦大学','山东大学'的学生信息。

聚合查询

SELECT max(gpa) FROM user_profile where university='复旦大学';

找复旦大学学生gpa最高值是多少

SELECT count(gender) as male_num,round(avg(gpa),1) as avg_gpa FROM user_profile where gender="male";

求男性用户有多少人以及他们的平均gpa是多少,保留小数位数为1。

排序查询

SELECT device_id,age FROM user_profile ORDER BY age;

取出用户信息表中的用户年龄,请取出相应数据,并按照年龄升序排序。

SELECT device_id,gpa,age FROM user_profile ORDER BY gpa desc,age desc;

取出用户信息表中对应的数据,并先按照gpa、年龄降序排序输出。

SELECT device_id,gpa,age FROM user_profile ORDER BY gpa ,age ;

取出用户信息表中的年龄和gpa数据,并先按照gpa升序排序,再按照年龄升序排序输出。

vju

线段树OR树状数组 - Virtual Judge

分析:我开始看这个题的时候,我觉得是纯覆盖,直接干就行,还是失策了,数据有点多,会爆,然后我就想到了贪心+排序,还是有问题,因为它数据一打乱可能就会造成多几块或者少几块的情况,然后接触了一个只有一点点印象的东西——离散,,,太离谱了,我是真的想不到,用离散+贪心+排序+去重,就是这个题目的精华。

  这个真的让我挺震惊的,因为之前要去重或者二分查找的话都要自己打代码,然后才能达到效果。所以真的从c转成c++真的挺重要的,不然别人两句代码的事,自己要打几十行。

代码如下:

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;

struct ffff
{
    int l;
    int r;
}a[10002<<4]; 

struct fffff
{
    int l;
    int r;
    int val;
    int lazy;
    int sum;
    int mid()
    {
        return (l+r)/2;
    }
}t[20002<<4];

int dqu()
{
    char chr=getchar(); 
    int f=1,sum=0;
    while(!isdigit(chr)) 
    {
        if(chr=='-') 
        f=-1;
        chr=getchar();
    }
    while(isdigit(chr))  
    {
        sum=sum*10;
        sum+=chr-'0';
        chr=getchar();
    }
    return sum*f;
}

int sum = 0,n,js=0,x,y;
int b[20005<<4];
bool bf[20005<<4];

void build(int i,int l,int r)
{
    t[i].l=l;
    t[i].r=r;
    t[i].val=0;
    if(l==r)
      return;
    int m=t[i].mid();
    build(i*2,l,m);
    build(i*2+1,m+1,r);
}

int quc()
{
    scanf("%d",&n); 
    js = 0;
    for(int i = 1;i <= n;i++) 
    {
        a[i].l = dqu();
        a[i].r = dqu();
        b[++js] = a[i].l;
        b[++js] = a[i].r;
        b[++js] = a[i].r + 1;
    }
    sort(b+1,b+js+1);
    int len;
    len=unique(b + 1,b + js + 1) - b - 1;
    for(int i = 1; i <= n;i++) 
    {
        a[i].l = lower_bound(b + 1,b + len + 1,a[i].l) - b;//二分查找
        a[i].r = lower_bound(b + 1,b + len + 1,a[i].r) - b;
    }
    return len;
}

void query(int i,int l,int r)
{
    if(t[i].val!=-1)
    {
    	 if(!bf[t[i].val])
         {
            bf[t[i].val] = 1;
            sum++;
         }
        return;
    }
    query(i*2,l,r);
    query(i*2+1,l,r);
}

void jiar(int i)
{
    if(t[i].val==-1)  
    return;
    t[i*2].val=t[i*2+1].val=t[i].val;  
    t[i].val=-1;
}

void fout(int i,int l,int r,int x)
{
    if(l<=t[i].l&&t[i].r<= r)
    {
        t[i].val=x;
        return;
    }
    jiar(i);
    int m=t[i].mid();
    if(l<=m)  
        fout(i*2,l,r,x);
    if(r>m)
        fout(i*2+1,l,r,x);
}

int xwen(int l,int r)
{
    memset(bf,0,sizeof(bf));
    sum = 0;
    bf[0] = 1;
    query(1,l,r);
    return sum;
}

int main()
{	
    int tt;
    scanf("%d",&tt);
    while(tt--)
    {
        int m=quc();   
        js=0;
        build(1,1,m);
        for(int i = 1;i <= n;i++)
            fout(1,a[i].l,a[i].r,++js);
        printf("%d\n",xwen(1,m));
    }
    return 0;
}

cf

Problem - A - Codeforces

分析:这道题分两块写,它一个数中最大值和最小值相减的最大值是9,那也就是说只要两个数之间的差大于等于90,那么就可以直接找一个数c使得c*90%100为一个整数,这就是第一部分。第二部分是两数之间的差小于90,反正数也不多,直接浅浅地暴力一下就行。

代码如下:

#include<stdio.h>
int xysz(int x)
{
	int a[10],i,n,t=x,max=0,min=10;
	for(i=0;t;i++)
	{
		a[i]=t%10;
		t/=10;
		if(a[i]>max) max=a[i];
		if(a[i]<min) min=a[i];
	}
	return max-min;
}
 
int main()
{
	int t,i,l,r;
	scanf("%d",&t);
	while(t--)
	{
		scanf("%d%d",&l,&r);
		int i,max=0,t,temp=l;
	for(i=l;i<=r;i++)
	{
		t=xysz(i);
		if(t>max) 
		{
			max=t;
			temp=i;
		}
		if(max>=9) 
		{
			temp=i;
			break;
		}
	}
	printf("%d\n",temp);
	}
	return 0;
}

Problem - A - Codeforces

分析:

这个题很好想,因为它子序列的起点从哪里开始是你自己决定的,所以只要我目前的这个位置之后的数字,有一个小于或者这个位置的序号的数就行。

代码如下:

#include<stdio.h>
#include<math.h>
#include<string.h>
int a[102];
int main()
{  
	int t;
	scanf("%d",&t);
	while(t--)
	{
		int n;
		scanf("%d",&n);
		for(int i=1;i<=n;i++)
		scanf("%d",a+i);
		int f=0;
		for(int i=1;i<=n;i++)
		{
			for(int j=i;j<=n;j++)
			{
				if(a[j]<=i)
				{
					f=1;
					printf("YES\n");
					break;
				}
			}
			if(f)
			break;
		}
		if(f==0)
		printf("NO\n");
	} 
}

Problem - B - Codeforces

分析:

这个题当时想了二十多分钟吧,开始一直顺着想,然后突然就发现逆着想更好想,首先,它肯定是不能为偶数的,一旦是偶数就输出-1,那为奇数的时候呢?只要总操作次数不超过40,那它始终都是能出来的,那么对于奇数,他就两种可能,要么是2*x-1得到的,要么是2*x+1得到的,那就两种都试一下,只要其中有一个操作过后不得偶数,那么就可以,反之就使用另外一种。

代码如下:

#include<stdio.h>
#include<math.h>
#include<string.h>

int main()
{  
    int t;
    scanf("%d",&t);
    while(t--)
    {
        int n;
        scanf("%d",&n);
        if(n%2==0)
        printf("-1\n");
        else 
        {
            int a[42]={0};
            int i;
            int f=0;
            for(i=1;i<=40;i++)
            {
                if(n==1)
                {
                    f=1;
                    break;
                }
                if(n<1)
                break;
                if((n-1)/2%2==1)
                {
                    a[i]=2;
                    n=(n-1)/2;
                }
                else
                {
                    a[i]=1;
                    n=(n+1)/2;
                } 
            }
            if(f)
            {
             printf("%d\n",i-1);
             i--;
            do{
            printf("%d ",a[i]);
            }while(i-->1);
            printf("\n");
            }
            else 
            printf("-1\n");
        }
    } 
}

周总结

MySQL的查询学完了,项目设计思路已经交给学姐了,学姐说还行,但是我觉得还不够细,因为学的东西不多,具体的操作还是很模糊,所以等把那些东西都学完之后,会再次进行补充和具体化。

这周打了一场cf,手感是比之前好一点了,但是要注意编译器的问题,有些编译器它可能会爆时间,但是换个编译器它就不爆时间了。补了一场cf,这场cf比较偏数学。补了一场atc,这场的题目不是很难,在接受范围内。打了一场牛客,经验还是要积累,感觉经验非常非常少。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/5569.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

细思极恐,第三方跟踪器正在获取你的数据,如何防范?

细思极恐&#xff0c;第三方跟踪器正在获取你的数据&#xff0c;如何防范&#xff1f; 当下&#xff0c;许多网站都存在一些Web表单&#xff0c;比如登录、注册、评论等操作需要表单。我们都知道&#xff0c;我们在冲浪时在网站上键入的数据会被第三方跟踪器收集。但是&#x…

[C++]C++基础知识概述

目录 C基础知识概述&#xff1a;&#xff1a; 1.什么是C 2.C发展史 3.C关键字 4.命名空间 5.C的输入输出 6.缺省参数 7.函数重载 8.引用 9.内联函数 10.auto关键字(C11) 11.基于范围的for循环(C11) 12.指针空值—nullptr(C11) C基础知识概述&#xff1…

React中使用lodash防抖失效解决

React中使用lodash防抖失效解决 import {Input} from antd; import lodash from lodash; // lodash下的防抖函数 const debounce lodash.debounce; // 防抖打印&#xff0c;希望输入的时候&#xff0c;延迟0.5s后打印值 const getSuggestion debounce((val:string) > {co…

SpringCloud微服务技术栈.黑马跟学(九)

SpringCloud微服务技术栈.黑马跟学 九今日目标1.分布式事务问题1.1.本地事务1.2.分布式事务1.3.演示分布式事务问题2.理论基础2.1.CAP定理2.1.1.一致性2.1.2.可用性2.1.3.分区容错2.1.4.矛盾2.2.BASE理论2.3.解决分布式事务的思路3.初识Seata3.1.Seata的架构3.2.部署TC服务一、…

GPT-4老板:AI可能会杀死人类,已经出现我们无法解释的推理能力

来源: 量子位 微信号&#xff1a;QbitAI “AI确实可能杀死人类。” 这话并非危言耸听&#xff0c;而是OpenAI CEO奥特曼的最新观点。 而这番观点&#xff0c;是奥特曼在与MIT研究科学家Lex Fridman长达2小时的对话中透露。 不仅如此&#xff0c;奥特曼谈及了近期围绕ChatGPT…

《统计学习方法》学习笔记之第一章

统计学习方法的学习笔记&#xff1a;第一章 目录 第一节 统计学习的定义与分类 统计学习的概念 统计学习的分类 第二节 统计学习方法的基本分类 监督学习 无监督学习 强化学习 第三节 统计学习方法三要素 模型 策略 第四节 模型评估与模型选择 训练误差与测试误差 过…

Ubuntu设置清华源

本文为自己安装记录回顾用 下面的是ubuntu20.04Ubuntu 更换镜像源 Ubuntu默认的服务器是在国外&#xff0c;连接很慢。 更换成国内的镜像源&#xff0c;使用清华镜像源&#xff0c;连接就会快一点 下面介绍更换清华镜像源的方法 1.打开Ubuntu的控制台&#xff08;快捷键ctrlAlt…

Mysql事务(MVCC实现原理)、锁、sql优化

一.事务 数据库事务就是访问、操作各种数据的一个数据库操作序列, 是由事务开始到事务结束之间全部的执行过程组成的, 事务处理可以用来维护数据库的完整性, 保证成批的sql要么全部执行要么全部都不执行, 当然在mysql中只有使用了Innodb数据库引擎的数据库或表才有事务. 事…

2023值得我们关注的10种软件测试趋势

未来测试的趋势 随着软件在商业和日常生活中继续发挥关键作用&#xff0c;测试将不断发展以满足现代数字环境的需求。客户对软件得质量有着很高的要求并且测试时间应该更加快。因此&#xff0c;组织努力更快、更频繁地交付他们的软件&#xff0c;并且测试过程需要更多地集成到开…

C++继承相关总结

文章目录前言1.继承的相关概念1.继承概念2.继承的相关语法3.基类和派生类对象赋值转换(赋值兼容规则&#xff09;2.继承中的注意事项1.继承中的作用域2.派生类的默认成员函数1.构造函数与拷贝构造2.赋值重载与析构3.友元关系与静态成员变量3.多继承(菱形继承)1.虚拟继承2.虚拟继…

栈和队列OJ题合集(包含循环队列的两种实现)

目录 一:前言 二:有效的括号(括号匹配) 三:用队列实现栈 四:用栈实现队列 五:设计循环队列 一:前言 对栈和队列的基本性质和实现有问题的可以看上一期 链接&#xff1a;http://t.csdn.cn/YQMBA​​​​ 注意:本文用数据的大小来表示入栈入队的先后。 二:有效的括号(括号匹配…

fastp软件介绍

fastp软件介绍1、软件介绍2、重要参数解析2.1 全部参数2.2 使用示例2.3 重要参数详解&#xff08;1&#xff09;UMI去除&#xff08;2&#xff09;质量过滤&#xff08;3&#xff09;长度过滤&#xff08;4&#xff09;低复杂度过滤&#xff08;5&#xff09;adapter过滤&#…

《文章复现》考虑用户舒适度的冷热电多能互补综合能源系统优化调度

说明书 免费&#xff1a;https://download.csdn.net/download/qq_50594161/87625438 MATLAB代码&#xff1a;考虑用户舒适度的冷热电多能互补综合能源系统优化调度 关键词&#xff1a;用户舒适度 综合能源 PMV 优化调度 参考文档&#xff1a;《冷热电气多能互补的微能源网鲁…

什么是RabbitMQ?有什么用如何使用?一文回答

RabbitMQ RabbitMQ channel&#xff1a;操作MQ的工具exchange&#xff1a;交换机&#xff0c;路由消息到队列中queue&#xff1a;队列&#xff0c;缓存消息virtual host&#xff1a;虚拟主机&#xff0c;对queue&#xff0c;exchange等资源的逻辑分组 MQ模型 基本消息队列工作…

Java 8 - Lambda 表达式

1. 函数式接口 当一个接口中只有一个非 default 修饰的方法&#xff0c;这个接口就是一个函数式接口用 FunctionalInterface 标注 1&#xff09;只有一个抽象方法 FunctionalInterface public interface MyInterface {void print(int x); } 2&#xff09;只有一个抽象方法和…

射频接收机概述

接收机架构 射频接收机架构是指电子设备中用于接收无线电信号的部分。它通常由前置放大器、中频放大器、混频器、局部振荡器和带通滤波器等组成。以下是一个基本的射频接收机架构&#xff1a; 前置放大器&#xff1a;前置放大器的作用是放大接收天线接收到的微弱无线电信号&am…

程序员万万不能去的3种公司,越做越倒退,过来人的经验

俗话说“条条大路通罗马”&#xff0c;但是对于程序员来说&#xff0c;有些路千万别走&#xff0c;走得越久越难以抽身&#xff0c;甚至说毁掉你的职业生涯。 今天来跟大家讲一下&#xff0c;作为程序员&#xff0c;有些公司千万不要进去&#xff0c;你以为稀松平常&#xff0…

用Python发送电子邮件?这也太丝滑了吧(21)

小朋友们好&#xff0c;大朋友们好&#xff01; 我是猫妹&#xff0c;一名爱上Python编程的小学生。 欢迎和猫妹一起&#xff0c;趣味学Python。 今日主题 猫爸赚钱养家&#xff0c;细想起来真的不容易啊&#xff01; 起早贪黑&#xff0c;都是6点早起做早饭&#xff0c;送…

Autodesk AutoCAD 2023(CAD设计软件)自动化工具介绍以及图文安装教程

Autodesk AutoCAD是一款功能强大的计算机辅助设计软件&#xff0c;主要用于2D和3D设计、制图和草图。它适用于多种行业&#xff0c;包括建筑、土木工程、机械工程、电气工程等等。 Autodesk AutoCAD具有2D和3D设计、多种工具和功能、可扩展性、与其他Autodesk软件集成和多平台…

记录一次解决Maven问题的坑

记录一次解决Maven问题的坑目录概述需求&#xff1a;设计思路实现思路分析1.一步步的解决问题比较方法2.后来感觉和这个没关系3.最后查询资料拓展实现性能参数测试&#xff1a;参考资料和推荐阅读Survive by day and develop by night. talk for import biz , show your perfec…