- 博客(58)
- 资源 (7)
- 问答 (1)
- 收藏
- 关注
原创 XSS攻击
转向我的博客XSS攻击一、XSS漏洞XSS漏洞很常见,在很多网站中都存在着首先:引用维基百科的一句话:跨站脚本(英语:Cross-site scripting,通常简称为:XSS)是一种网站应用程序的安全漏洞攻击,是代码注入的一种。它允许恶意用户将代码注入到网页上,其他用户在观看网页时就会受到影响。这类攻击通常包含了HTML以及用户端脚本语言。XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常
2020-09-16 22:16:43
473
1
原创 Java小项目 — 狼人杀进阶版
转向我的博客查看12人局的一个游戏平民阵营(好人阵营):4个平民神职阵营(好人阵营):4个,分别是预言家,女巫,猎人,白痴狼人阵营(狼人阵营):4个,4个狼人2个大的阶段:黑夜阶段,白天阶段黑夜阶段:(第一阶段)4个狼人见面,共同去决定猎杀一名玩家,狼人的行为就结束了神职阵营行动:1.预言家行动:预言家会查验一个玩家的身份是好人还是狼人查验3号,3号身份–女巫,查验的结果为好人,查验4号,4号身份–狼人,查验的结果就是狼人。2.女巫:一局游戏一共有两瓶药,分别解药与毒药。当女巫有解药的
2020-09-16 19:13:53
2506
2
原创 JAVA 基础实践项目 -- 狼人杀
题目狼人杀,身份分配。12人身份,3个阵营。分配身份。阵营:神民:预言家、女巫、猎人、白痴平民:4民狼人:4 狼人程序执行:1. 分配身份2. 退出点击分配身份,将12个身份随机分给12个用户,打印出来。例如:1.预言家 7.女巫2.平民 8.狼人3.猎人 9狼人4.狼人 10.平民5.白痴 11狼人6.平民 12.平民(进阶功能,可以做一个猜身份的功能)每次分配身份结果都随机,不是固定为上述功能。package com.azw
2020-09-09 09:29:32
3073
原创 蚂蚁感冒 -- 第五届蓝桥杯省赛C++A/B组
题目描述:长 100 厘米的细长直杆子上有 n 只蚂蚁。它们的头有的朝左,有的朝右。每只蚂蚁都只能沿着杆子向前爬,速度是 1 厘米/秒。当两只蚂蚁碰面时,它们会同时掉头往相反的方向爬行。这些蚂蚁中,有 1 只蚂蚁感冒了。并且在和其它蚂蚁碰面时,会把感冒传染给碰到的蚂蚁。请你计算,当所有蚂蚁都爬离杆子时,有多少只蚂蚁患上了感冒。输入格式第一行输入一个整数 n, 表示蚂蚁的总数。接着的一行是 n 个用空格分开的整数 Xi, Xi 的绝对值表示蚂蚁离开杆子左边端点的距离。正值表示头朝右,负值
2020-08-18 10:46:26
205
原创 买不到的数目 -- 第四届蓝桥杯省赛C++A组
题目描述:小明开了一家糖果店。他别出心裁:把水果糖包成4颗一包和7颗一包的两种。糖果不能拆包卖。小朋友来买糖的时候,他就用这两种包装来组合。当然有些糖果数目是无法组合出来的,比如要买 10 颗糖。你可以用计算机测试一下,在这种包装情况下,最大不能买到的数量是17。大于17的任何数字都可以用4和7组合出来。本题的要求就是在已知两个包装的数量时,求最大不能组合出的数字。输入格式两个正整数 n,m,表示每种包装中糖的颗数。输出格式一个正整数,表示最大不能买到的糖数。数据范围2≤n,m≤
2020-08-17 08:53:47
205
原创 K倍区间 -- 第八届蓝桥杯省赛C++B组
题目描述:给定一个长度为 N 的数列,A1,A2,…AN,如果其中一段连续的子序列 Ai,Ai+1,…Aj 之和是 K 的倍数,我们就称这个区间 [i,j] 是 K 倍区间。你能求出数列中总共有多少个 K 倍区间吗?输入格式第一行包含两个整数 N 和 K。以下 N 行每行包含一个整数 Ai。输出格式输出一个整数,代表 K 倍区间的数目。数据范围1≤N,K≤100000,1≤Ai≤100000输入样例:5 212345输出样例:6解题思路:1.最简单的方法,采用暴力枚
2020-08-16 10:46:33
357
原创 ACWING136 邻值查找
给定一个长度为 n 的序列 A,A 中的数各不相同。对于 A 中的每一个数 Ai,求:min1≤j<i|Ai−Aj|以及令上式取到最小值的 j(记为 Pi)。若最小值点不唯一,则选择使 Aj 较小的那个。输入格式第一行输入整数n,代表序列长度。第二行输入n个整数A1…An,代表序列的具体数值,数值之间用空格隔开。输出格式输出共n-1行,每行输出两个整数,数值之间用空格隔开。分别表示当i取2~n时,对应的min1≤j<i|Ai−Aj|和Pi的值。数据范围n≤105,|Ai|≤1
2020-08-15 17:23:24
171
原创 输入一组数字(可能包含重复数字),输出其所有的排列方式。
输入一组数字(可能包含重复数字),输出其所有的排列方式。样例输入:[1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]与之前的不会重复的排列不一样,排列:https://blog.youkuaiyun.com/qq_43800455/article/details/104650325与该题不一样,那个是枚举位置,找数字现在是枚举数字,找位置AC代码class Solution {public: vector&l
2020-08-15 10:03:00
732
原创 ACWING 778. 字符串最大跨距
有三个字符串S,S1,S2,其中,S长度不超过300,S1和S2的长度不超过10。现在,我们想要检测S1和S2是否同时在S中出现,且S1位于S2的左边,并在S中互不交叉(即,S1的右边界点在S2的左边界点的左侧)。计算满足上述条件的最大跨距(即,最大间隔距离:最右边的S2的起始点与最左边的S1的终止点之间的字符数目)。如果没有满足条件的S1,S2存在,则输出-1。例如,S = “abcd123ab888efghij45ef67kl”, S1=”ab”, S2=”ef”,其中,S1在S中出现了2次,S
2020-08-13 19:41:13
273
原创 Java多线程 -- 线程通信
Java多线程 – 线程通信一、传统的线程通信假设现在系统中有两个线程,交替打印奇偶数。为了实现这个功能,可以借助于Object类的wait(),notify(),notifyAll()三个方法,这三个方法并不属于Thread类,而是属于Object类。但是这三个方法必须由同步监视器对象来进行调用。可以分为两种情况:对于使用了synchronized修饰的同步方法,因为该类的默认实例(this)就是同步监视器,所以可以在同步方法之中直接调用三个方法。对于使用了synchronized修饰的同步
2020-07-02 19:29:30
123
原创 Java多线程 -- 线程同步
Java多线程 – 线程同步一、线程安全问题 在多线程编程中,极容易出现一个问题,即线程安全。举个栗子~,如果此时火车站有十张余票,四个售票口,此时四个售票口相当于四个线程,他们一同运转,卖票,那么就会出现一个很经典的安全问题。示例代码:class demo{ public static void main(String[] args) throws InterruptedException { Train train = new Train(); Trai
2020-07-02 10:44:43
133
原创 Java多线程 -- 控制线程
Java多线程 – 控制线程一、join线程 像人类社会,人有很多时间都在等别人,线程也是一样,有的时候,线程也需要等待别的线程。Thread提供了让一个线程等待另一个线程完成的方法,那就是 join方法,当在某个程序执行流中调用其他线程的join()方法,调用线程则会被阻塞,知道join()方法加入的join线程执行完成为止。 join()方法通常由使用线程的程序调用,以将大问题划分成许多小问题,每个小问题分配一个线程,当所有小问题都得到处理之后,在再调用主线程进一步进行操作。class de
2020-07-01 18:25:10
124
原创 Java多线程 - 线程的生命周期
Java多线程 - 线程的生命周期引言:Java线程被创建之后,并非是一启动就开始执行,也不是一直处于执行状态。在线程的生命周期中,需要经过新建、就绪、运行、阻塞和死亡五种状态。线程启动后,不可能一直占用着CPU独自运行,CPU需要再多条线程之间切换,于是线程状态也会多次在运行和就绪之间切换。一、新建和就绪状态当程序使用new关键字创建了一个线程之后,这个线程就会一直处于新建状态,此时它和Java对象一样,仅仅由Java虚拟机为其分配内存,并且初始化其成员变量的值,此时线程对象没有任何线程的动态
2020-07-01 08:47:55
156
原创 Java多线程 - 线程的创建与启动
Java多线程 - 线程的创建与启动一、继承Thread类创建线程类1.创建步奏:定义Thread类的子类,重写该类的run()方法,该方法就代表线程需要完成的任务,所以,run方法又被称为线程执行体。创建Thread的实例,即是创建了线程对象。调用线程对象中的start()方法来启动该线程。实例代码:class demo{ public static void main(String[] args) { AThread first = new AThread();
2020-06-30 09:12:05
187
原创 Java多线程 -- 概述
Java多线程 - 概述一、线程概述几乎所有的操作系统都会支持进程的概念。所有运行中的任务通常都会对应着一个进程(Process)。而一个程序进入内存中运行的时候,就会变成一个线程。可能很多人会在这里迷糊,进程和线程有些分不清楚。简单,进程和线程区别:进程:运行中的程序,资源分配的单元,切换代价大,拥有资源多。线程:进程内部的一个执行序列,执行行单元,切换代价小,拥有资源少,多个线程共享进程的资源。一般来说:进程会有三个特征:独立性:进程是系统中独立存在的实体,可以拥有自己的独立资源,
2020-06-29 08:57:44
109
原创 1005 继续(3n+1)猜想 -- PAT 乙级
题目描述卡拉兹(Callatz)猜想已经在1001中给出了描述。在这个题目里,情况稍微有些复杂。当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程中遇到的每一个数。例如对 n=3 进行验证的时候,我们需要计算 3、5、8、4、2、1,则当我们对 n=5、8、4、2 进行验证的时候,就可以直接判定卡拉兹猜想的真伪,而不需要重复计算,因为这 4 个数已经在验证3的时候遇到过了,我们称 5、8、4、2 是被 3“覆盖”的数。我们称一个数列中的某个数 n 为“关键数”,如果 n 不能被数列中的其他
2020-06-04 23:04:35
127
原创 MySQL数据库之事务隔离级别
隔离级别引言:在数据库操作中,隔离性是一种很重要的特性,涉及到并发处理。在SQL标准中,一共是有四种隔离级别的,越低的隔离级别通常也可以做到更高的并发处理,系统对其进行开销也更小。一、READ UNCOMMITTED(未提交读)在这种级别之中,事务的修改,即便是没有提交,也是对其他的事务是可见的。事务可以读取没有提交的数据,这也是脏读,因为事务没有提交,但可以读取到,这会产生脏数据。从性能上说,READ UNCOMMITED 不会比其他的级别好很多,但是却缺少了别的级别的很多的好处,所以说,一般实际
2020-05-23 10:10:00
141
原创 旧键盘打字 -- PAT乙级1033
描述旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及坏掉的那些键,打出的结果文字会是怎样?输入格式输入在 2 行中分别给出坏掉的那些键、以及应该输入的文字。其中对应英文字母的坏键以大写给出;每段文字是不超过 10^5个字符的串。可用的字符包括字母 [a-z, A-Z]、数字 0-9、以及下划线 _(代表空格)、,、.、-、+(代表上档键)。...
2020-04-26 11:41:19
178
原创 玩了树莓派之后--树莓派烧录系统
树莓派烧录系统下载系统可以选择下载树莓派的官方系统网址是:树莓派下载网址该网站就是树莓派官方的网站下载选项,一共有三个,分别是完整版,桌面版以及极简版完整版:包含了桌面和官方建议的一些软件桌面版:包含桌面极简版:没有桌面的如果说你用vnc连接远程连接桌面的,需要使用桌面版本的,否则是连接不上桌面的。准备写入镜像软件可以使用树莓派官网的写入软件,也可以用第三方的写入软件...
2020-04-14 19:41:06
341
原创 小数化分数2-- 2007省赛集训队练习赛(2)
小数化分数Ray在数学课上听老师说,任何小数都能表示成分数的形式,他开始了化了起来,很快他就完成了,但他又想到一个问题,如何把一个循环小数化成分数呢?请你写一个程序不但可以将普通小数化成最简分数,也可以把循环小数化成最简分数。输入第一行是一个整数N,表示有多少组数据。每组数据只有一个纯小数,也就是整数部分为0。小数的位数不超过9位,循环部分用()括起来。输出对每一个对应的小数化成最简...
2020-04-07 09:43:53
354
原创 激光炸弹--算法竞赛进阶指南
题目描述地图上有 N 个目标,用整数Xi,Yi表示目标在地图上的位置,每个目标都有一个价值Wi。注意:不同目标可能在同一位置。现在有一种新型的激光炸弹,可以摧毁一个包含 R×R 个位置的正方形内的所有目标。激光炸弹的投放是通过卫星定位的,但其有一个缺点,就是其爆炸范围,即那个正方形的边必须和x,y轴平行。求一颗炸弹最多能炸掉地图上总价值为多少的目标。输入格式第一行输入正整数 N 和 ...
2020-04-05 22:16:43
383
原创 分巧克力--算法小笔记--第八届蓝桥杯省赛C++ A/B组
题目描述输入样例2 106 55 6输出样例2AC代码/*整体思路:其实只需要尝试即可,利用二分去尝试这个边长的蛋糕是否可以切出大于小朋友数目的块数即可 */ #include <cstdio>#include <cstring>#include <iostream>#include <algorithm>usi...
2020-04-05 17:51:16
334
原创 四平方和--第七届蓝桥杯省赛C++A/B组
题目描述AC代码/*解法1:暴力枚举,枚举每一个数字,但是,这样子即便优化后,三重循环,仍然会超时!不可选!解法2:利用空间去换时间开始的时候,为了方便,直接开辟出五百万的int类型空间,反正空间大,不怂然后计算出a,b这两个数字的平方和,并记录下,数组下标是这两数字的平方和,数组里面的值是b这个数字的值!然后计算c,d,此时,计算出c的平方和d的平方,如果有对应a的平...
2020-04-05 16:35:49
236
转载 php读写txt文件与读写数据库哪个更快?解决办法
读写txt文件与读写数据库哪个更快?解决办法今天 突然遇到这个问题,在网上找了很久才找到的一篇文章,所以转来了,其实这个问题开始是有些模糊,但仔细想一下还是能猜出一个大概,所以有时候,人的意识可能也很作用!读文件更快还是读数据库更快,能快多少,也搜索过,没见有网友就这个问题答复过,也可能是太简单的缘故,我们本文还是来实测一下,由于时间关系,VC还没装,天缘先用PHP测试了一下,下次有时间在C/C+...
2020-04-03 09:48:04
881
原创 翻硬币--第四届蓝桥杯省赛C++ B组
题目描述小明正在玩一个“翻硬币”的游戏。桌上放着排成一排的若干硬币。我们用 * 表示正面,用 o 表示反面(是小写字母,不是零)。比如,可能情形是:**oo***oooo如果同时翻转左边的两个硬币,则变为:oooo***oooo现在小明的问题是:如果已知了初始状态和要达到的目标状态,每次只能同时翻转相邻的两个硬币,那么对特定的局面,最少要翻动多少次呢?我们约定:把翻动相邻的两个硬币叫做...
2020-03-30 10:02:42
227
原创 飞行员兄弟--算法竞赛进阶指南
题目描述:“飞行员兄弟”这个游戏,需要玩家顺利的打开一个拥有16个把手的冰箱。已知每个把手可以处于以下两种状态之一:打开或关闭。只有当所有把手都打开时,冰箱才会打开。把手可以表示为一个4х4的矩阵,您可以改变任何一个位置[i,j]上把手的状态。但是,这也会使得第i行和第j列上的所有把手的状态也随着改变。请你求出打开冰箱所需的切换把手的次数最小值是多少。输入格式:入一共包含四行,每行...
2020-03-29 15:05:28
443
原创 幸运数--蓝桥杯历届试题本科B组Java题--C++解法
问题描述幸运数是波兰数学家乌拉姆命名的。它采用与生成素数类似的“筛法”生成。首先从1开始写出自然数1,2,3,4,5,6,…1 就是第一个幸运数。我们从2这个数开始。把所有序号能被2整除的项删除,变为:1 _ 3 _ 5 _ 7 _ 9 …把它们缩紧,重新记序,为:1 3 5 7 9 … 。这时,3为第2个幸运数,然后把所有能被3整除的序号位置的数删去。注意,是序号位置,不是那个数本...
2020-03-23 23:10:17
331
原创 递归实现组合型枚举--算法竞赛进阶指南
从 1~n 这 n 个整数中随机选出 m 个,输出所有可能的选择方案。输入格式两个整数 n,m ,在同一行用空格隔开。输出格式按照从小到大的顺序输出所有方案,每行1个。首先,同一行内的数升序排列,相邻两个数用一个空格隔开。其次,对于两个不同的行,对应下标的数一一比较,字典序较小的排在前面(例如1 3 5 7排在1 3 6 8前面)。数据范围n>0 ,0≤m≤n ,n+(n...
2020-03-09 09:11:33
381
原创 费解的开关--算法竞赛进阶指南
你玩过“拉灯”游戏吗?25盏灯排成一个5x5的方形。每一个灯都有一个开关,游戏者可以改变它的状态。每一步,游戏者可以改变某一个灯的状态。游戏者改变一个灯的状态会产生连锁反应:和这个灯上下左右相邻的灯也要相应地改变其状态。我们用数字“1”表示一盏开着的灯,用数字“0”表示关着的灯。下面这种状态1011101101101111000011011在改变了最左上角的灯的状态后将变成:011...
2020-03-09 08:51:46
195
原创 Ubuntu服务器安装数据库及远程连接
唉,以前都是使用windows数据库,远程连接上后配服务器使用,结果换成了Ubuntu的服务器,数据库的配置上折腾了一段时间。服务器系统:Ubuntu Server 18.04 1 LTS 64位首先,我们需要在服务器端安装数据库sudo apt-get install mysql-serverapt-get isntall mysql-clientsudo apt-get insta...
2020-03-06 11:16:13
613
原创 递归实现排列型枚举--算法竞赛进阶指南
把 1~n 这 n 个整数排成一行后随机打乱顺序,输出所有可能的次序。输入格式一个整数n。输出格式按照从小到大的顺序输出所有方案,每行1个。首先,同一行相邻两个数用一个空格隔开。其次,对于两个不同的行,对应下标的数一一比较,字典序较小的排在前面。数据范围1≤n≤9输入样例:3输出样例:1 2 31 3 22 1 32 3 13 1 23 2 1/*主要思想:第...
2020-03-04 12:00:16
345
原创 递推实现指数型枚举--算法竞赛进阶指南
从 1~n 这 n 个整数中随机选取任意多个,输出所有可能的选择方案。输入格式输入一个整数n。输出格式每行输出一种方案。同一行内的数必须升序排列,相邻两个数用恰好1个空格隔开。对于没有选任何数的方案,输出空行。本题有自定义校验器(SPJ),各行(不同方案)之间的顺序任意。数据范围1≤n≤15输入样例:3输出样例:322 311 31 21 2 3/*主要思...
2020-03-04 11:39:31
311
原创 layui框架使用笔记--数据表格分页显示
layui里面是有数据表格的分页显示的今天尝试了一下,结果忙了半天,记录下今天使用心得使用layui的数据表格的时候,切记,每次当你点击,切换多少条/页的时候,会执行重新从后台读取一次数据,且layui的数据表格会返回你的limit值和page值,当你需要使用的时候,直接使用即可,至于是_POST[‘limit’],还是_POST['page],根据你的数据表格中的传递方式有关。切记!tab...
2020-02-04 22:22:15
264
原创 Java语言的输入与输出与文件处理
一、流的概念流是指计算机各部件之间的数据流动。按照数据的传输方法,流可以分为输入流与输出流。从流的内容上划分,流分为字节流和字符流。输入输出流在Java语言中,把不同类型的输入输出源(键盘,屏幕等)抽象为流,其中输入或输出的数据被称为数据流。数据流分为输入流和输出流,从外设或外存传递到应用程序的流称为输入流,将数据从应用程序传递到外设或外存的流称为输出流。输入流只可以从其中读取数据,输出流...
2019-12-22 11:43:32
1180
原创 Java异常机制
一、异常处理概念引文异常是指在程序运行之中因为代码而产生的一种错误,在不支持异常处理的程序语言之中,每一个运行时所发生的的错误必须由程序员手动控制。但是Java语言之中的异常处理机制则会避免这些问题。错误与异常软件开发之中,程序的错误是无法避免的。程序中的错误会有很多种类,一般分为三种,语法错误,语义错误和逻辑错误三种。即便程序中有三种心智的错误,但是Java系统中根据错误的严重...
2019-12-18 16:31:03
231
原创 Java面向对象--包
包的概念包其实只是为了区别类名空间的机制。包中还可以再有包。源程序中没有声明类所在的包的时候,Java会将类放在默认包中。包的作用将功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。如同文件夹一样,包也是采用了树形目录的存储方法,同一个包中的类名字是不同的,不同的包中类的名字是可以相同的,当同事调用两个不同包中的相同类名的类时,应该加上包名加以区别,因此,包可以避免...
2019-12-16 17:47:58
172
原创 Java面向对象--枚举
枚举简介实际开发的过程之中,我们经常会遇到一些数据的取值就在几个确定的值之间。例如,性别只有男或者女,一周只有七天。自从Java 5之后就开始增加了对枚举类型的支持。枚举也是一种类,一种特殊的类,所以枚举也称为枚举类,是一种引用类型。它的声明和使用与类的接口相似,但是枚举类型的声明必须要使用关键字enum。枚举类型的定义枚举定义的语法格式:[修饰符] enum 枚举类型名{ 枚...
2019-12-16 09:25:50
282
原创 Java面向对象--接口
接口的简介接口是Java语言所提供的另一种重要功能,它的结构与抽象类非常相似。接口本身也具有数据成员,抽象方法,默认方法和静态方法,凡是它与抽象类有一些不同。一是接口的数据成员都是静态的且必须初始化,即数据成员必须是静态常量。二是接口中除了声明抽象方法外,还可以定义静态方法和默认方法。接口的定义接口定义的语法格式如下:[public] interface 接口名称 [extends...
2019-12-16 08:24:12
190
原创 Java面向对象--抽象类与抽象方法
抽象类与抽象方法抽象类就是abstract修饰的类。声明格式:abstract class 类名{ 声明成员变量; 返回值的数据类型 方法名(参数列表){ ... } } 抽象方法就是abstract修饰的方法。声明格式:abstract void ...
2019-12-15 19:19:07
137
原创 Java面向对象--继承
类的继承类的继承是非常重要的一点。继承是面向对象的三大特征之一,可以解决实际编程中代码冗余的问题,也是实现代码重用的重要手段之一,继承:是软件重用的重要手段之一,新类在不增加自身代码的同时,从现有的类中继承其属性和方法,来使其变成自身的内容。这种行为其实就称为继承,这个时候新类就称为子类,现有的类就称为父类。子类的创建Java之中类的继承通过extends关键字实现的。例如:cla...
2019-12-15 16:59:27
109
TA创建的收藏夹 TA关注的收藏夹
TA关注的人