Markdown入门
这篇文章之后会与后面的内容重新整合排版,本文将会改成索引页。 什么是Markdown? 先放一段介绍: Markdown是一种轻量级标记语言,创始人为约翰·格鲁伯(英语:John Gruber)。 它允许人们使用易读易写的纯文本格式编写文档,然后转换成有效的XHTML(或者HTML)文档。这种语言吸收了很多在电子邮件中已有的纯文本标记的特性。由于Markdown的轻量化、易读易写特性,并且对于图片,图表、数学式都有支持,许多网站都广泛使用Markdown来撰写帮助文档或是用于论坛上发表消息。 如GitHub、Reddit、Diaspora、Stack Exchange、OpenStreetMap 、SourceForge、简书等,甚至还能被使用来撰写电子书。——百度百科 Let’s go! 换行 Markdown不同于其他文本编辑器,Markdown一个换行实际为一个空格,Markdown只有两个及两个以上的换行符实际为一个换行。 示例: 12this is line 1this is line 2 显示: this is line 1 this is line 2 示例:...
CF926C题解
本文同步发于洛谷博客,您也可以在题解页面访问。 这是一道很简单的模拟。 解题思路: 我们定义两个变量 cnt1cnt1cnt1 cnt2cnt2cnt2,分别用于记录上一个连续 0/10/10/1 区间的长度和这一个连续 0/10/10/1 区间的长度。只要这个连续区间的长度不等于上个区间的长度,那么直接输出NO,然后return 0就可以了(因为这里不一样后面就无需判断,这是一个小优化)。如果相等,那么 cnt2cnt2cnt2 清零,重新计算新的连续区间的长度,以此类推计算就可以了。 那么这个过程怎么实现呢? 对于代码实现来说,对于当前的 aia_iai 来说,分两种情况: 如果 aia_iai 等于 ai−1a_{i-1}ai−1 ,那么说明还在当前的区间中,那么 cnt2+1cnt2+1cnt2+1 ,长度加 111 。 如果 aia_iai 不等于 ai−1a_{i-1}ai−1 ,那么按照上面的思路判断就可以了。 这里需要注意一些细节:加一个特判,判断 cnt1cnt1cnt1 是不是 000 ,并在cnt2=1前面把 cnt1cnt1cnt1...
CF620A题解
本文同步发于洛谷博客,您也可以在题解页面访问。 update:有一个图挂了,我重新补上,管理求过 这道题不难,主要考察的是数学知识。 前铺:欧几里得距离 首先我们都知道,两点之间线段最短,如下图所示: 这个距离很好求,我们把 AAA 点和 BBB 所在的轴画出来,如下图所示: 很容易看出来这三条线构成了一个直角三角形。根据勾股定理,我们就求出了距离公式,如下: dis(i,j)=(xi−xj)2+(yi−yj)2\large{dis(i,j) = \sqrt{(x_i-x_j)^2+(y_i-y_j)^2}} dis(i,j)=(xi−xj)2+(yi−yj)2 这个距离公式也是现在最常用的距离公式。 切比雪夫距离 切比雪夫距离用于解决格点上的距离问题。这类问题只能向自己点的上、下、左、右、左上、左下、右上、右下方向走。 在这个问题中,每走一个斜线和走一个直线的距离相同。那我们想要距离最短,那就按照欧几里得距离的思想,尽量先走斜线到对方的横坐标上,在走直线到达对方的点,如下图所示: 这就是当前问题下的最短距离。 那么怎么算出距离呢? 因为棋盘的性质,走一个斜线等...
AT3935题解
本文同步发于洛谷博客,您也可以在题解页面访问。 回文数判断前面几位大佬已经讲的很清楚了,我讲一种新的 STL 做法。 这里介绍两个函数,reverse()和to_string()。 to_string()函数 to_string()是在 C++11 中新加入的函数,定义于<string>头文件中。用法为to_string(val),其中val可以是int,long,long long,unsigned int,unsigned long long,fload,double,long double类型。其作用是将数字转换成字符串。 reverse()函数 reverse()函数是一个可以翻转数组,string,vector等数据结构的函数,定义于<algorithm>头文件中。用法为reverse(p1,p2),p1为前指针,p2为后指针。 123reverse(array,array+a_length) //数组reverse(str.begin(),str.end()) //stringreverse(v.begin(),v.end()) //vect...
SP10228题解
本文同步发于洛谷博客,您也可以在题解页面访问。 因为题目输入格式,输出格式和数据范围没给全。所以我补充一下。 题目翻译 输入格式 第一行输入 TTT 表示有 TTT 组数据。每组数据中第一行两个整数 R,CR,CR,C ,接下来输入一个 RRR 行 CCC 列的网格 SSS ,如果 Si,j<0S_{i,j} < 0Si,j<0 表示恐龙,否则表示药水。 输出格式 输出包含 TTT 组数据,每组数据输出一个正整数,表示由单元格 1,11,11,1 到单元格 R,CR,CR,C 的最小力量值。 数据范围与约定 1≤T≤51 \leq T \leq 51≤T≤5 2≤R,C≤5002 \leq R,C \leq 5002≤R,C≤500 −103≤Si,j≤103-10^3 \leq S_{i,j} \leq 10^3−103≤Si,j≤103 S1,1=SR,C=0S_{1,1} = S_{R,C} = 0S1,1=SR,C=0 下面回归正轨 解题思路 这道题是一道明显的 dp 题。 定义状态: dpi,jdp_{i,j}dpi,j 表示从第 iii...
CF1591A题解
本文同步发于洛谷博客,您也可以在题解页面访问。 这题真还挺简单的(红题不都是吗?) 废话不多说!开始!(这也不废话吗) 理解题意 题目描述 题中说得很清楚了 输入格式 本题有多组数据。首先,输入整数 ttt ,表示数据组数 t(1≤t≤100)t(1\le t\le100)t(1≤t≤100) ,对于每组数据,输入整数 nnn ,表示一共浇花或没浇花的天数 (1≤n≤100)(1\leq n\leq100)(1≤n≤100) ,然后输入 nnn 个整数 a1,a2,…an (ai=0a_1,a_2,\dots a_n\ (a_i=0a1,a2,…an (ai=0 或 ai=1)a_i=1)ai=1) , ai=1a_i=1ai=1 表示第 iii 天浇花了,否则表示第 iii 天没浇花。 输出格式 对于每组数据,如果花活着,输出花 nnn 天后的高度,如果花死了,输出 −1-1−1 。 解法 这道题我们用模拟的解法。用一变量 hhh 表示花的高度, a1,a2,…ana_1,a_2,\dots a_na1,a2,…an 浇表示第几天浇花了没。一开始让 hhh ...
UVA1149题解
本文同步发于洛谷博客,您也可以在题解页面访问。 看一眼算法标签就知道了是贪心 ps:文章翻译有些错误 最后一行是包裹的容量 应该是 第二行是包裹的容量 解题思路 对物品数组按体积由大往小排序 用两个变量当前指针和后指针 如果第一个和最后一个能装到箱子里,计数器 +1+1+1 ,前指针向后挪一位,后指针向前挪一位。否则只能装大的,计数器 +1+1+1 ,并且前指针要向后挪一位。 重复循环直到前指针大于或等于后指针,输出结果。 流程图(自己做的,有点丑) 献上代码 核心代码 12345678910111213141516171819202122232425cin>>n;memset(V,0,sizeof(V));p1=1,p2=n,cnt=0;初始化cin>>v;for(int i=1;i<=n;i++){ cin>>V[i];}数据输入sort(V+1,V+n+1,greater<int>()); 排序while(true){ 循环处理 if(p1==p2...
UVA483题解
本文同步发于洛谷博客,您也可以在题解页面访问。 题目传送门 水题 看不懂stringstream,所以用了这种方法,【分析】可以直接用cin>>…读入。(cin遇到空格,回车,TAB停止读入 实现方法: 看个例子: I love you.会读入I 和 love 和 you. 怎么实现?直接用 1234string s;while(cin>>s){ /*语句段*/} 它会一直读入数据,直到EOF(输入中止结束符) 百科 https://baike.baidu.com/item/EOF/1017800?fr=aladdin 模拟:(以I love you.为例: 首先读入I,遇到空格,执行语句段,然后读入love……最后读入you.遇到EOF,结束。 reverse(s.begin(),s.end());:reverse:定义在<algorithm>中,指将字符串、数组等反转,s.begin和s.end是两个广义指针,分别指向s的开头和末尾。 介绍一下getchar: getchar原本的意思指读入一个字符,在这里可以把两个字...