2023/7/15总结

news2024/12/23 21:00:14

JWT

在写项目的时候,本来想着把用户的数据全部存入session这样的话就不用每次都需要带用客户端的账号。后面了解到JWT,这个是在服务器无状态的一个方式。

具体是分为三个部分,第一个是头部主要存储用到的算法等信息,第二个是载荷,这里不能存储重要的信息,只能存储一些基本信息,第三部分是签名部分。

使用base64对数据进行了编码。

 解析:

 

 题解:

暑假第二周练习题 - Virtual Judge (vjudge.net)

这道题是一个构造题,很简单,就是需要构造一个最大值为s-r的,剩下的n-1个数字必须总和为r,并且最大值不能为s-r。

 把s-r除以n-1 ,再把余数平均分配就行。

#include<stdio.h>
int main()
{
	long long n,s,r,i,t,x,y;
	scanf("%lld",&t);
	while(t--)
	{
		scanf("%lld%lld%lld",&n,&s,&r);
		//n个色子,和为s,拿走一个最大的和为r
		
		//要保证接下来,最小的是1
		printf("%lld ",s-r);
		x=r/(n-1);
		y=r-x*(n-1);
		if(x==s-r&&y==0)
		{
			for(i=1;i<n;i++)
			{
				printf("%lld ",s-r);
			}
		}
		else 
		{
			for(i=1;i<=y;i++) printf("%lld ",x+1);
			for(i=y+1;i<n;i++) printf("%lld ",x);
		}
		printf("\n");
	}
	return 0;
}

暑假第二周练习题 - Virtual Judge (vjudge.net)

这个是找出连续区间段和最小的一个题目

确定边界 左边界是 这个数组的最大值,因为分成一段每个数字只有一个最小值就是 数字最大值,

右边界是数组的总体前缀和,最少分成1段。

然后二分去求解,得出的这个解去暴力去分段,看满不满足就行

#include<stdio.h>
#include<algorithm>
#define Maxsize 200010

using namespace std;

struct node
{
	int num;
	int pos;
}a[Maxsize];
bool cmp(node a,node b)
{
	return a.num>b.num;
}
void init(int n)
{
	int i;
	for(i=0;i<=n;i++)
	{
		a[i].pos=a[i].num=0;
	}
}
int main()
{
	int t,n,i,j,x;
	scanf("%d",&t);
	while(t--)
	{
		scanf("%d",&n);
		init(n);
		for(i=0;i<n;i++)
		{
			for(j=1;j<n;j++)
			{
				scanf("%d",&x);
				a[x].num+=n-j+1;
				a[x].pos=x;
			}
		}
		sort(a+1,a+n+1,cmp);
		for(i=1;i<=n;i++) 
			printf("%d ",a[i].pos);
		puts("");
	}
	return 0;
}

暑假第二周练习题 - Virtual Judge (vjudge.net)

这道题就是求连续的递增为1的序列 最少有几个

使用map映射,看对应的值有几个,一般来说相同的数字的个数是最大的一个序列,但是还是要看一些其他情况。

map映射后,差分一下递增的序列的个数之差,就能知道最小序列是多大了

#include<stdio.h>
#include<map>
#include<algorithm>
#define Maxsize 200010

using namespace std;
int a[Maxsize],b[Maxsize];
map<int,int> mymap;
int main()
{
	//排序,找出最多一样的数字
	int n,i,t,mmin=0,k=0,j,m,res;
	scanf("%d",&t);
	while(t--)
	{
		k=0;
		mmin=-1;
		j=0;
		res=0;
		scanf("%d",&n);
		for(i=1;i<=n;i++)
		{
			scanf("%d",&a[i]);
			mymap[a[i]]++;
		}
		for(auto i:mymap)
		{
			if(mmin+1!=i.first) m=0;
			res+=max(0,i.second-m);
			
			mmin=i.first;
			m=i.second;
		}
		mymap.clear();
		printf("%d\n",res);
	}
	
	return 0;
}

暑假第二周练习题 - Virtual Judge (vjudge.net)

转换成9进制没有4就可以了。

#include<stdio.h>

int main()
{
	long long n,t,i;
	int a[10]={0,1,2,3,5,6,7,8,9};
	scanf("%lld",&t);
	while(t--)
	{
		int res[100]={0},k=0;
		scanf("%lld",&n);
		while(n)
		{
			res[k++]=a[n%9];
			n/=9;
		}
		for(i=k-1;i>=0;i--)
			printf("%d",res[i]);
		puts("");
	}
	return 0;
}

暑假第二周练习题 - Virtual Judge (vjudge.net)

map映射就行,需要考虑到会出现重复的单词

#include<stdio.h>
#include<map>
#include<string>
#define Maxsize 110
using namespace std;
map<string,int> mymap;
char a[Maxsize][50],b[Maxsize][50];
long long price[Maxsize];
int main()
{
	int n,m,i,p0;
	long long res=0;
	scanf("%d%d",&n,&m);
	for(i=1;i<=n;i++)
	{
		scanf("%s",a[i]);
		mymap[a[i]]++;
	}
	//是因为会出现重复的吧
	for(i=1;i<=m;i++)
	{
		scanf("%s",b[i]);
	}
	scanf("%d",&p0);
	for(i=1;i<=m;i++)
	{
		scanf("%lld",&price[i]);
		if(mymap[b[i]])
		{
			res+=mymap[b[i]]*price[i];
			mymap[b[i]]=0;
		}
	}	
	map<string, int>::iterator iter;
	for (iter = mymap.begin(); iter != mymap.end(); iter++) {
	    if(iter->second!=0)
	    {
			res+=p0*(iter->second);
		}
	}
//	for(auto i:mymap){
//		if(i.second==2)
//		{
//			res+=p0;
//		}
//	}
	printf("%lld\n",res);
	return 0;
}

暑假第二周练习题 - Virtual Judge (vjudge.net)

记住(出现的位置,每次出现  )就找到最近的( 的位置进行刷新保存就行

#include<stdio.h>
#define Maxsize 200010
char stack[Maxsize],str[Maxsize];
int top;
int main()
{
	int n,i,a[Maxsize]={0},k=0,j;
	char ch;
	scanf("%d\n",&n);
	scanf("%s",str);
	for(i=0;i<n;i++)
	{
		ch=str[i];
		if(ch=='(')
		{
			a[k++]=top;
			stack[top++]=ch;
			//当前位置记录
		}
		else if(ch==')')
		{
			if(k>0)
			{
				//说明当前位置是有的
				top=a[k-1];
				k--;
			}
			else stack[top++]=ch;
		}
		else stack[top++]=ch;
		
//		if(ch==')')
//		{
//			int k=top;
//			k--;
//			while(k>=0&&stack[k]!='(') k--;
//			if(k>=0) top=k;
//		}
	}
	for(i=0;i<top;i++)
	{
		putchar(stack[i]);
	}
	puts("");
	return 0;
}

暑假第二周练习题 - Virtual Judge (vjudge.net)

无脑模拟单调队列,滑动窗口

(1条消息) 滑动窗口算法_lxh0113的博客-CSDN博客 

#include<stdio.h>
#define N 1000010
int n,k,a[N],que[N],head,tail;
int main()
{
	int i,j;
	scanf("%d%d",&n,&k);
	for(i=1;i<=n;i++)
	{
		scanf("%d",&a[i]);
	}
	head=1;tail=0;
	for(i=1;i<=n;i++)
	{
		if(head<=tail&&que[head]<i-k+1) head++;
		while(head<=tail&&a[i]<=a[que[tail]]) tail--;
		que[++tail]=i;
		if(i>k-1) printf("%d ",a[que[head]]);
	}
	puts("");
	head=1;tail=0;
	for(i=1;i<=n;i++)
	{
		if(head<=tail&&que[head]<i-k+1) head++;
		while(head<=tail&&a[i]>=a[que[tail]]) tail--;
		que[++tail]=i;
		if(i>k-1) printf("%d ",a[que[head]]);
	}
	return 0;
}

 暑假第二周练习题 - Virtual Judge (vjudge.net)

 我用的是归并排序,然后找到对应的排序后的位置所在和现在的差距

主要是 当前位置减去 应该排序的位置的已经存在于前面的个数

#include<stdio.h>
#include<math.h>
#define Maxsize 500010
int a[Maxsize],b[Maxsize];
long long res=0;
void merge(int l,int m,int r)
{
	int i,j,k=0;
	for(i=l,j=m+1;i<=m&&j<=r;)
	{
		if(a[i]>a[j])
		{
			res+=abs(j-l-k);
			b[k++]=a[j++];
		}
		else 
		{
			res+=abs(i-l-k);
			b[k++]=a[i++];
		}
		
	}
	while(i<=m) {res+=abs(i-l-k);b[k++]=a[i++];}
	while(j<=r) {res+=abs(j-l-k);;b[k++]=a[j++];}
	
	for(i=l;i<=r;i++) a[i]=b[i-l];
	
}
void sort(int l,int r)
{
	int m=(l+r)/2;
	if(l>=r)
	{
		return ;
	}
	sort(l,m);
	sort(m+1,r);
	merge(l,m,r);
}
int main()
{
	int n,i;
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		scanf("%d",&a[i]);
	}
	sort(0,n-1);

	printf("%lld\n",res/2);
	return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

51单片机--DS1302时钟

文章目录 DS1302引脚定义和应用电路内部结构框图寄存器的定义时序定义BCD码DS1302时钟代码 DS1302 DS1302是美国DALLAS公司推出的一款实时时钟电路芯片。它具有高性能和低功耗的特点&#xff0c;可以通过SPI三线接口与CPU进行同步通信。DS1302能够提供秒、分、时、日、星期、月…

HTML基础教程

1 什么是HTML HTML 是用来描述网页的一种语言。HTML 是一种在 Web 上使用的通用标记语言。HTML 允许你格式化文本&#xff0c;添加图片&#xff0c;创建链接、输入表单、框架和表格等等&#xff0c;并可将之存为文本文件&#xff0c;浏览器即可读取和显示。 HTML 指的是超文本…

复用cmake代码的其他方法

复用cmake代码的其他方法 函数和宏是代码复用的方法,在cmake3.18版本开始,cmake添加了cmake_language()命令,通过这个命令我们可以直接调用任意的cmake代码,无需将这些可复用的代码使用函数或者宏包起来. 当然cmake_language()命令不是为了代替函数和宏而设计的,而是希望通过…

ROS话题通信自定义msg

从21年至今写过不下10个ROS话题通信的工程&#xff0c;今天系统地记录下自定义msg的过程&#xff0c;让后来者少走弯路。 1、自定义msg简介 在 ROS 通信协议中&#xff0c;数据载体是一个较为重要组成部分&#xff0c;ROS 中通过 std_msgs 封装了一些原生的数据类型,比如:Stri…

redis7单节点、主从、哨兵、集群的安装和配置

redis7安装和配置 2022年4月份正式发布的redis 7.0&#xff0c;是目前历史上变化最大的版本&#xff0c;有超过50个以上的新增命令 官网&#xff1a; https://redis.io中文镜像 http://redis.cn中文学习网&#xff1a; https://redis.com.cn/redis版本&#xff0c;建议升级…

Spring初识(一)

一.Spring 是什么&#xff1f; 首先我们来看看官网的解释 Spring 使每个人都可以更快、更轻松、更安全地进行 Java 编程。Spring 对速度、简单性和生产力的关注使其成为 世界上最受欢迎的 Java框架。 这里我简单的说明一下什么是spring? 我们通常所说的 Spring 指的是 Sprin…

纯CSS实现的卡片切换效果

纯CSS实现的卡片切换效果 无需JS就可以实现限于纯静态页面产品展示不需要轮播,自动切换 示例代码 <template><div class"example-css-tab"><div class"container dwo"><div class"card"><input type"radio"…

(续2)选择屏幕

分页签组件 表单控件 双击空白处----出现右侧编辑框 其中 fixed的意思是固定几列。 可修改 回车会自动复原 回车会自动复原 原因 在pai中检查字段却没有做任何操作。 打算新建一个表单 表单中指定选择行. 按钮扩展. 执行后 修改列名. 创建一个moudle 修改后不会复原. …

前端卷算法系列(七)

前端卷算法系列&#xff08;六&#xff09; 删除有序数组中的重复项 给你一个 升序排列 的数组 nums &#xff0c;请你 原地 删除重复出现的元素&#xff0c;使每个元素 只出现一次 &#xff0c;返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯…

用 pesq 给 soundfile 读取的录音数据打分

音频文件来源 NOIZEUS: Noisy speech corpus - Univ. Texas-Dallas 很多python库都能计算pesq分数&#xff0c;如pypesq跟pesq两个库&#xff0c;这里讲的的是pesq的库 import soundfile as sf from pesq import pesq# 读取音频文件 audio_clean, src sf.read(./audio/NOIZE…

[南京大学]-[软件分析]课程学习笔记(三)-数据流分析

Data Flow Analysis Overview of Data Flow Analysis may analysis: outputs information that may be true(over-approximation) 可能正确&#xff0c;超出近似over-approximationmust analysis: outputs information that must be true (under-approximation) 必须正确&…

WPF RadioButton单选失效

文章目录 前言解决方案 前言 我最近在照着教程敲代码&#xff0c;WPF深入讲解第8集。发现RadioButton按钮点击触发器不是单选的。WPF中单选和复选通过RadioButton和CheckButton来进行区分。我点击另一个RadioButton之后&#xff0c;之前的Radiobutton没有取消选择。 解决方案 …

文件上传下载概述

So Easy系列之文件上传下载教程 文件上传下载概述 什么是文件上传下载 所谓文件上传下载就是将本地文件上传到服务器端&#xff0c;从服务器端下载文件到本地的过程。例如目前网站需要上传头像、上传下载图片或网盘等功能都是利用文件上传下载功能实现的。 文件上传下载实际上…

Shell运行原理以及Linux中的权限问题

目录 一、shell的运行原理 二、Linux权限的概念 2.1 用户账号切换 2.2 仅提升当前指令的权限 2.3 将普通用户添加到信任列表 三、Linux权限管理 3.1 文件访问者的分类 3.2 文件类型和访问权限 3.3 字符权限值的表示方法 3.3.1 字符表示方法 3.3.2 八进制表示法 3.4…

CSS学习04

文章目录 1.精灵图1.1 为什么需要精灵图1.2 精灵图&#xff08;sprites&#xff09;的使用 2.字体图标2.1 字体图标的产生2.2 字体图标的优点**2.3** **字体图标的下载****2.4** **字体图标的引入**2.5 字体图标的追加 3.CSS 三角3.1 介绍 4.CSS 用户界面样式4.1 鼠标样式 curs…

openGauss学习笔记-11 openGauss 简单数据管理-INSERT INTO语句

文章目录 openGauss学习笔记-11 openGauss 简单数据管理-INSERT INTO语句11.1 语法格式11.2 参数说明11.3 示例 openGauss学习笔记-11 openGauss 简单数据管理-INSERT INTO语句 在创建一个表后&#xff0c;表中并没有数据&#xff0c;使用这个表之前&#xff0c;需要向表中插入…

【Go|第8期】Lorca读取HTML的三种方式

日期&#xff1a;2023年7月16日 作者&#xff1a;Commas 签名&#xff1a;(ง •_•)ง 积跬步以致千里,积小流以成江海…… 注释&#xff1a;如果您觉得有所帮助&#xff0c;帮忙点个赞&#xff0c;也可以关注我&#xff0c;我们一起成长&#xff1b;如果有不对的地方&#xf…

【云原生】K8S单节点搭建

Kubernetes Kubernetes基础概念架构1、基础环境2、安装kubelet、kubeadm、kubectl 2、使用kubeadm引导集群1、下载各个机器需要的镜像2、初始化主节点 Kubernetes核心实战Pod Kubernetes基础概念 kubernetes具有以下特性&#xff1a; ● 服务发现和负载均衡 Kubernetes 可以使…

leetcode 669. 修剪二叉搜索树

2023.7.15 知道了如何删除二叉树节点的逻辑之后&#xff0c;这题就不难了。 可以参考删除二叉搜索树中的节点这篇文章。 下面直接上代码&#xff1a; class Solution { public:TreeNode* trimBST(TreeNode* root, int low, int high) {if(root nullptr) return root;root->…

MacOS使用USB接口与IPhone进行Socket通信

演示效果如下: 开源地址: GitHub - rsms/peertalk: iOS and Mac Cocoa library for communicating over USB 克隆源码: git clone https://github.com/rsms/peertalk.git 克隆后打开peertalk然后启动xcode工程 先启动MacOS服务端工程,再启动iOS客户端工程 客户端 服务端