网鼎杯 2020 青龙组AreUSerialz writeup
做到一道题,写下 write up
源码分析本题给了源码。
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081<?phpinclude("flag.php");highlight_file(__FILE__);class FileHandler { protected $op; protected $filename; protected $content; function __construct() { $op = "1"; $filename = "/tmp/tmpfile"; $content = "Hello World!"; $this ...
Fermat-Theory
小学一波数论
费马小定理若 $p$ 为素数,$\gcd(a, p) = 1$,则 $a^{p - 1} \equiv 1 \pmod{p}$。
另一个形式:对于任意整数 $a$,有 $a^p \equiv a \pmod{p}$。
证明设一个质数为 $p$,我们取一个不为 $p$ 倍数的数 $a$。
构造一个序列:$A={1,2,3\dots,p-1}$,这个序列有着这样一个性质:
$$\prod_{i=1}^{n}\space A_i\equiv\prod_{i=1}^{n} (A_i\times a) \pmod p$$
证明:
$$\because gcd(A_i,p)=1,gcd(A_i\times a,p)=1$$
又因为每一个 $A_i\times a \pmod p$ 都是独一无二的,且 $A_i\times a \pmod p < p$
得证(每一个 $A_i\times a$ 都对应了一个 $A_i$)
设 $f=(p-1)!$, 则 $f\equiv a\times A_1\times ...
html语言的学习
来学学 html (超文本标记语言)。
超文本标记语言)是一种用于创建网页的标准标记语言。
前言想彻彻底底学一遍 web 安全,先从最基本的 html 开始吧,首先 html 是给浏览器执行的语言,也就是说 html 是在我们本地的,是前端语言,相反 php 就是后端语言了,在服务器执行完得到结果之后以 html 的形式返回给用户,先最基本了解一下 html 有一个清晰的概念。
html语法html 语法较为松散,以至于你基本见不到因为 html 报的错(这也就更加考验了我们的代码功底,因为写错了某些东西它不会报错的)。html 说到底它就是由标签(有时候也成为”元素”)和对应的属性组成的,万种语言都有自己的 hello world,同样我们也先写一个 hello world。
1234567<html> <body> <div> hello world! </div> </body></html>
我们把它放到我们搭建的网站的根目录,用浏览器访问 ...
educational codeforces round 127(Div.2)
Educational Codeforces Round 127 (Rated for Div. 2),咕了有点久了,现在开写题解。
A. String Building题目描述
题目分析分析字符串是否能由aa,aaa,bb,bbb组成,给定字符串只含有a和b,很简单,就看看有没有单独存在的a或者b即可
标程12345678910111213141516171819202122232425262728293031323334353637383940#include<bits/stdc++.h>using namespace std;char s[100005]; void solve(){ scanf("%s",s); int len=strlen(s); int ans=1; if(len==1){ puts("NO"); return ; } s[len++]='c'; for(int i=1;i<le ...
codeforces round 784(Div.4)解析
今天来打个div4。
A. Division?题目描述
题目分析这应该是描述了 cf 四个层次比赛的最高积分要求,超过将 unrated 进行比赛。直接按他的要求把四个等级判断输出一下就好了。
标程12345678910111213141516171819202122232425262728293031#include<bits/stdc++.h>using namespace std;char a[50][50];void solve(){ int n; cin>>n; int k=0; if(n<=1399){ k=4; } else if(n<=1599){ k=3; } else if(n<=1899){ k=2; } else{ k=1; } printf("Division %d\n",k);& ...
Codeforces Round 783(Div.2)解析
Codeforces Round #783 (Div. 2)
A. Direction Change题目描述
题目分析不难发现,我最优的路线只能是向右或者向下走。我先不妨设 $m\ge n$,如果走到底了,不得以我只能向上转变方向然后再右下,这样循环走直到终点,只考虑到了最后一行的情况,不难发现,每次长度+1变为奇数时,走的步数+1,否则+3。最后特判一下走不了的情况,当只有一行且有超过2列的情况为走不了。
标程1234567891011121314151617181920212223242526272829303132333435363738394041#include<bits/stdc++.h>using namespace std;void solve(){ int n,m; cin>>n>>m; if(n>m){//m>n swap(n,m); } if(n==1&&m>2){ puts("-1& ...
概率论在icpc的应用
昆明打铁之后,痛定思痛,来重修概率论了。
基础知识样本空间、事件和概率样本空间 S 是一个集合,它的元素称为基本事件。样本空间的一个子集被称为事件, 根据定义,所有基本事件互斥。
互斥事件:若事件 A 发生一定能推导出 B 不发生,B 发生一定能推导出A不发生,则称 A,B 互斥,不难得出,两个事件同时发生的概率为 0,至少发生其中一个事件的概率为两者概率之和(概率公理3)。这个理论可以推导到 n 个事件,若有 n 个两两互斥事件 $a_1,a_2…a_n$,则任意两个事件同时发生的概率为 0,任意发生一个事件的概率就为 $\sum _{i=1}^n a_i$ 。
概率公理:
对于任意事件 A,事件发生的概率满足 $0\le P{A}\le1$
对于样本空间 S,有$P{S}=1$
对于两个互斥事件 A,B,有 $P{A∪B}=P{A}+P{B}$
随机变量如果对样本空间 S 中的任意事件 e,都有唯一的实数 X(e) 与之对应,则称 X=X(e) 为样 本空间 S 上的随机变量。这个随机变量怎么理解呢,首先看下面这张图:
还不能理解 ...
Codeforces Round 782(Div.2)解析
还是很开心的,第一次CF打出来D题,嘎嘎上132分,目前1584分,紫名指日可待。
A.Red Versus Blue题目描述:
题目分析知道双方赢球场次,要求构造一个输赢序列使得总比赛中最大连赢场数最小,即给定两种字符及个数,输出一个字符串使得由相同字符构成的子串最短。
首先题目给定了B的数目严格小于R,那么最优的情况一定是一输一赢,考虑在 b 个 B 中插入R,容易得到总共有 b+1 个可以插入的位置。若 r 可以整除 b+1,则可以得出答案为 r/(b+1),若否,则得到 r/(b+1)+1。
我们先在b+1个位置中每个放上 r/(b+1) 个 R,剩下r%(b+1)个R则随便给,只要不要一个位置给两次就可以了。
标程12345678910111213141516171819202122232425262728293031323334353637#include<bits/stdc++.h>using namespace std;void solve(){ int n,r,b; cin>>n>& ...
RSA加密原理解析
今天来深度解析一下RSA加密
引言还是最朴素的例子,Alice和Bob要在不安全的路线上发送信息,整条线路完全被窃听者Eve所知,如何让Alice和Bob安全地通信呢?如果这个例子略难懂,那换一个来讲,我要给别人寄个快递,我怎样让别人不知道我寄的是什么,一般情况下,如果没什么特殊情况,快递是不会被随便拆开查看的,但是也很难说,如果我给我实际要送的东西上把锁,那么即使我送的快递被拆开,没有钥匙也不会有人知道我送的是啥,而钥匙只有收件人拥有。
这就是非对称加密的一个例子了,一个人只有锁,另一个人有钥匙,可以这么说,当把锁关上的那一刻,寄件人都没办法打开去检查他寄的是啥,如果这个锁足够强大的话。
RSA加密rsa主要是利用一系列的数学公式,让推导难以逆向分析,常见的有右移运算或者取模运算,RSA主要是使用取模运算。首先,我选择一个指数(e),让明文(m)进行这么多次的幂运算,再模上一个数(N),这也就得到了密文(c),这个密文难以逆向得到明文,因为取模运算不可逆,这个e和N是公开的,所有人都可以加密,也就是锁,但是钥匙只有自己拥有。
这里也先给出加密和解密的公式:
在这里d由一个 ...
SA板子
本篇博客只有板子。
sa[i]:排名为i的后缀的下标
rak[i]:后缀suff[i]的排名
Height[i]:后缀按照字典排序之后,该后缀与上一个后缀的最长公共前缀,也就是排名为i的后缀字符串和排名为i-1的后缀字符串的最长公共前缀。
DA算法(O(nlogn))12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N=100010;int wa[N],wb[N],wv[N],wss[N],rak[N],height[N],cal[N],n,sa[N];char s[N];int cmp(int *r,int a,int b,int l){return r[a]==r[b]&&r[a+l]==r[b+l];}void ...