这道题终于把离散数学学到的Warshall算法用上了,好开心;所以比赛是最好的知识使用场; 这道题根据题意可以知道,A wins B ,Bwins C就可以知道A wins C所以这很明显就是传递闭包,然后最后去求位置确定的个数,那么得到确定位置的个数那么就必须知道这点:如果A 赢了x头牛,输给了y头牛,那
第一题:1094 这道题没什么可说的,就是链表的标准模板而已。 AC代码: 第二题:1096 这道题唯一需要注意的一点就是cin完之后会有一个回车,根据提示加一个cin.get()就行了。 AC代码:
第一题:1175 原来代码:(无) 当时做到这一题时已经快做完了,看到这道题想不出递推式就直接跳过了。 今天看到别人的代码,没想到用的都是这个公式:(m+1)*(1<<n) 所以我用这个公式打了一遍。AC代码: 第二题:1178 原来代码:(无)(原因和1175一样) 看了1175,我就预感这道题肯定也是个公式。果然,是个n*n-
最近几天编程集训,刷题数量可能不多(毕竟不能一整天一直编程)。 第一题:1082 原来代码:(无) 没有提交的原因是一直过不了样例。 后来到普及组又有这样一道题,当时查了题解,发现就是一个进制转换:把10进制下的k转换为2进制再转换为n进制就是结果。 当时写了很长的代码(还加了特判) 后来看到了pj
位运算是把数字用二进制表示之后,对每一位上0或者1的运算。二进制的位运算有5种:与、或、异或、左移和右移。与运算两个数都为1时,结果为1,与运算符用&表示;或运算两个数其中一个为1时,结果为1,或运算符用|表示;异或运算两个数不同时,结果为1,异或运算符用^表示;左移运算是将某数的二进制
按照洛谷的方法计算,今天已经是我连续打卡的第30天了。 这一个月里,我收获了不少新知识。 一个月做题数(截止2019/7/15):289题 通过刷题学习的新知识点(数据结构网站内):单调栈、单调队列、哈希表、二叉搜索树、二叉堆、哈夫曼树、树的重心、树的直径、Bellman-ford算法、dijkstra算法优先
1.题目 题目描述 给一个长度为n的单调递增的正整数数列,寻找一个数x,问x的第一次出现的位置是多少? 输入 第一行一个数n,表示有n个数;接下来有n个数,表示这个序列;第三行指定一个数x。 输出 输出x的位置 输入示例 104 6 7 8 8 9 9 9 11 159 输出示例 6 其他说明 0<n<10^6 2.
这道题是我出的,也是很坑的。
原题传送门 思路 这道题乍一看很难,然而实际在草纸上一模拟,结果就出来了。 分析:这道题实际上要么无解,要么有无数个解,因而题目只要求输出了一个解(明白这点题目就做出来一半了)。 题中,规定所求z满足:y[i]=max(x{i],z[i])。 因而,若x[i]>y[i],无论z[i]为何值max(x{i],z[i])的值都为x[i],而
Problem: 【题目】 给定一个有N*M的整型矩阵matrix和一个整数K, matrix的每一行和每一 列都是排好序的。实现一个函数, 判断K是否在matrix中。 例如: 0 1 2 5 2 3 4 7 4 4 4 8 5 7 7
The puzzle: 传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6489 找大佬讲了一下这道题,但还是不懂为什么要这样做,先记录一下以后再研究研究; 解题思路: 这道题是把序列换几次能到增序列,一上来pos数组记录一下每个数都在什么位置,然后就从1开始和第一个数进行匹配(数列是1-n的),
首先很明确地告诉你:打表不犯规。 所谓打表,就是直接把答案写出来。这里举两个例子。 (1)NOIP 2018普及组复赛第3题:摆渡车。这道题的数据规模明确约定,10%的数据m = 1,假如你能看懂题意,那么你自然就会发现m = 1时,结果必然为0。假如你这道题完全没有思路,那么你可以这样写代码: #include <i
CTS(C)2019划水记 本文会持续更新 By 猫睿 声明 如果要看正经的题解,我日后会更新,并把传送门发在这里 Day 0 到了裕龙,发现有998244353个人在排队……然后到特派员那里拿胸牌什么的。 试机我打了LCT、FHQ_TREAP、输入输出优化。键盘的手感很不错。 然后尴尬地发现体育馆没有厕所。一
对于ListNode链表而言,可以使用next来向后移动,这道题就可以想到判断最后一位是否有next,有则是为true,无则为false, 这道题也可以定义两个指针,一个是另一个的next,判断若不为空前提下,是否两者相同,若相同则返回true。 对于head == null或者head.next == null,直接输出false.
瞎扯~ 回文数应该是学习编程路上永远迈不过的一道坎了,不过这个坎应该很小很小了,基本上都能码出来,不过也有笨的和简单的方法,第一次码这道题的时候就很笨,用了两次循环把每一位上的数字取出来再和原来的每位数字对比,就需要两次遍历,还需要一个数组存储。这道题和第2道整数反转有异
我是传送门 【题目描述】 一个数的序列\(bi\),当\(b_1<b_2<...<b_S\)的时候,我们称这个序列是上升的。对于给定的一个序列\((a1,a2,...,aN)\),我们可以得到一些上升的子序列\((a_{i1},a_{i2},...,a_{iK})\),这里\(1≤i_1<i_2<...<i_K≤N\)。比如,对于序列\((1,7,3,5,9,4,8)\),有它的一些
四月中旬以来事情还是蛮多的,先捋一捋: 首先有幸参加了东南大学承办的SUSCTF 2nd,虽然比赛的规模不是很大,但是这也是第一次以小组的方式正式参加比赛,也是对前期学习成果的检验。在同组成员的努(带)力(飞)下,取得了前十名的成绩,混了个奖; 后来又报名了DDCTF-2019,做了做web题目,当给国赛练
1.本周学习总结 结构认识 栈的结构认识: 栈是一种只能在栈顶进行插入或删除操作的线性表,用于保存函数调用时所需要的信息。主要特点是“先进后出”,有顺序以及链式两种存储结构,主要运算算法包括入栈Push(注意是否栈满)、出栈Pop(注意是否栈空)。在我看来,栈类似于一口井,只有一个口,依
这道题是LeetCode里的第70道题。 题目描述: 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 示例 1: 输入: 2 输出: 2 解释: 有两种方法可以爬到楼顶。 1. 1 阶 + 1 阶 2. 2 阶
1.本周学习总结 1.栈和队列是两种比较特殊的线性结构,栈具有先进后出的特点,操作时只对栈顶进行操作,队列具有先进先出的特点,操作时从队尾入队,从队头出队,而针对栈和队列的各种操作的时间复杂度均为O(1),利用这一点以及栈和队列的特点可以更加方便的解决问题。 2.随着对c++的深入学习,我
题目大意:有若干个数(各不相同),给出若干个大小关系,问有多少个数大小关系确定? n<=100 m<=4500 真是一道好题啊。。。 直接说思路吧,这道题利用了图的思想: 我们把a大于b看作从a向b连一条有向边,那么两个数如果大小关系确定的话就代表两点是联通的,那么我们就可以利用floyd的思想: 如果i能到j,只有两种可能:从i到j有
FZU Monthly-201903 tutorial 题目(难度递增) easy easy-medium medium medium-hard hard 思维难度 ABF G CH D E A. Derivative 对于本题,你只需要有着扎实的高等数学基础即可通过。出题人的原意是希望这道题能够成为第二档难度,然而他似乎不知道有在线求导这样神奇的网站
上面这道题,要求判断输出的y和z分别为什么 一开始,我选择了2,4 后来发现答案是4,4 意识到js中没有函数重载!!!即使声明了两个同名函数,结果也是后面的函数覆盖了前一个函数。 而且函数声明会提升。
这道题其实很简单,只要能够搞清楚最基本的操作是什么就可以了 这道题中最基本的操作就是绕着某个轴顺时针旋转。 整体思路就是:(0代表z轴,1代表x轴,2代表y轴) 首先绕着0轴转四次,每转1次,都和fir立方体比较一次 然后再将0轴的上下面平面交换:即绕着1或者2轴转两次 然后再将x轴放到z轴上 然后
这道题几个重要信息: 1、依次放入编号为1,2,3,...的球。 2、任何2个相邻球的编号之和为完全平方数。 这两点就可以确定网络流构图,一定是$DAG$图。 难点在于放入到底多少个球呢? 网络流算法比较强大的是可以在残余网络中继续求解。 所以我们从小往大的球放,同时建立与其他点的连接。 直到