03 2020 档案

摘要:题目传送门 核心解法(并查集): 关键要理清楚这些关系是怎样的:即通过了解题意可知:假设现在有如下三种动物类型:老虎,老虎的食物,老虎的天敌。所输入的x y都只满足这三种类型(输入m次去判断关系),x y是两个独立的未知种类的动物(即不知道是老虎本体、食物还是天敌)。现在需要通过构建且查询个体间的关 阅读全文
posted @ 2020-03-31 20:44 neverstopcoding 阅读(179) 评论(0) 推荐(0)
摘要:题目传送门 方法:这是一道赤裸裸的并查集题目,根据输入先进行合并,合并后根据输入开始查询判断即可。需要注意的是,为了简化题目,实际操作过程中可以用编号来对应姓名,从而表示出不同的学生,并建立相应的联系。 实现代码: #include<bits/stdc++.h> #include <cstring> 阅读全文
posted @ 2020-03-31 20:38 neverstopcoding 阅读(136) 评论(0) 推荐(0)
摘要:题目传送门 最开始错误的思路是对整条字串进行dfs,看一位dfs进入下一位,这是没有充分理解题意的后果 核心解题思路:不要被这些规则变来变去搞混了,我们需要将原问题进行切割成小的子问题去分析。例如此处我们将每一位数都当做一个独立单位,首先求出在这个位置上有多少种可以存在的数的种类(0~9)。而这些独 阅读全文
posted @ 2020-03-31 20:28 neverstopcoding 阅读(293) 评论(0) 推荐(0)
摘要:题目传送口 很明显,这个题用邻接矩阵+dfs就能出(从不同点出发搜,且搜的时候更新最小值,可以剪枝,并且不成环) 。但算法标签中有并查集,因此此题尝试用并查集的方法来解决类似的连通图问题。 核心算法: 把每一条边按权值从小到大排序,然后依次看,如果两个端点不在一个集合里,就把他们合并,累加路径长度。 阅读全文
posted @ 2020-03-31 19:52 neverstopcoding 阅读(338) 评论(0) 推荐(0)
摘要:并查集,顾名思义,就是一个合并和查询的过程,其实际意义类似于等价划分的作用(划分出不同的等价类)。掌握基本的知识和思想后,便可以运用并查集来解决问题。其中,学会使用并查集的模板对解决并查集问题十分十分有帮助。 并查集:(union-find sets) 一种简单的用途广泛的集合. 并查集是若干个不相 阅读全文
posted @ 2020-03-31 19:40 neverstopcoding 阅读(944) 评论(0) 推荐(0)
摘要:sync_with_stdio 这个函数是一个“是否兼容stdio”的开关,C++为了兼容C,保证程序在使用了std::printf和std::cout的时候不发生混乱,将输出流绑到了一起。 应用 在ACM里,经常出现数据集超大造成 cin TLE的情况。这时候大部分人(包括原来我也是)认为这是ci 阅读全文
posted @ 2020-03-31 02:14 neverstopcoding 阅读(3352) 评论(0) 推荐(5)
摘要:拓扑排序看起来很难,其实了解后不算难(思想非常清楚) 关键掌握思想后需要学会应用到具体的题目中去。(从入度为0到出度为0) 1、拓扑排序的介绍 对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边 阅读全文
posted @ 2020-03-30 01:35 neverstopcoding 阅读(1041) 评论(0) 推荐(0)
摘要:题目背景 你知道食物链吗?Delia 生物考试的时候,数食物链条数的题目全都错了,因为她总是重复数了几条或漏掉了几条。于是她来就来求助你,然而你也不会啊!写一个程序来帮帮她吧。 题目描述 给你一个食物网,你要求出这个食物网中最大食物链的数量。 (这里的“最大食物链”,指的是生物学意义上的食物链,即最 阅读全文
posted @ 2020-03-30 01:11 neverstopcoding 阅读(498) 评论(0) 推荐(0)
摘要:题目描述 如下图所示的一棵二叉树的深度、宽度及结点间距离分别为: 深度:4 宽度:4(同一层最多结点个数) 结点间距离: ⑧→⑥为8 (3×2+2=8) ⑥→⑦为3 (1×2+1=3) 注:结点间距离的定义:由结点向根方向(上行方向)时的边数×2, 与由根向叶结点方向(下行方向)时的边数之和。 输入 阅读全文
posted @ 2020-03-27 11:02 neverstopcoding 阅读(308) 评论(0) 推荐(0)
摘要:题目背景 高手最近谈恋爱了。不过是单相思。“即使是单相思,也是完整的爱情”,高手从未放弃对它的追求。今天,这个阳光明媚的早晨,太阳从西边缓缓升起。于是它找到高手,希望在晨读开始之前和高手一起在鳌头山上一起散步。高手当然不会放弃这次梦寐以求的机会,他已经准备好了一切。 题目描述 鳌头山上有n个观景点, 阅读全文
posted @ 2020-03-27 10:45 neverstopcoding 阅读(309) 评论(0) 推荐(0)
摘要:题目描述: 打印回文数。如果一个数从左边和从右边读都是相同的数,就称它为回文数,例如383。求出500 以内的回文数并输出显示。要求:提示数据范围为0-500;Enter键,换行显示结果。 基本功能: 每输入一个数,都判断是不是回文数(同时伴随着溢出和错误输入判断);若出现溢出或者是错误输入时,程序 阅读全文
posted @ 2020-03-26 19:51 neverstopcoding 阅读(1782) 评论(0) 推荐(0)
摘要:1 需求分析 游戏名称:连连看。这是一款区别于普通连连看的小游戏。玩家以某个速度顺时针连续旋转,在旋转过程中根据键盘或鼠标命令射出直线连接 界面上的小球,每连接一个小球,玩家则占领此地,连接下一个小球,直至连接所有小球成闭环。 1.1 功能需求1.1.1基本功能: ①完成游戏登入界面的设计②在登入界 阅读全文
posted @ 2020-03-24 22:31 neverstopcoding 阅读(639) 评论(2) 推荐(0)
摘要:P1123 取数游戏(洛谷) 阅读全文
posted @ 2020-03-23 01:53 neverstopcoding
摘要:题目描述 一个N×M的由非负整数构成的数字矩阵,你需要在其中取出若干个数字,使得取出的任意两个数字不相邻(若一个数字在另外一个数字相邻8个格子中的一个即认为这两个数字相邻),求取出数字和最大是多少。 输入格式 第1行有一个正整数T,表示了有T组数据。 对于每一组数据,第一行有两个正整数N和M,表示了 阅读全文
posted @ 2020-03-23 01:50 neverstopcoding 阅读(623) 评论(0) 推荐(0)
摘要:问题描述: 三角形判断。输入a,b,c 三边后,判断是否能构成三角形,如能构成三角形,输出三角形的周长,否则输出“ERROR”。要求:提示输入三角形三边长度a b c;键盘输入,中间空格隔开;Enter 键结束输入,并换行显示判断结果。 附加功能有:1.判断输入是否符合规范(如字母不能出现,数与数之 阅读全文
posted @ 2020-03-22 11:10 neverstopcoding 阅读(1302) 评论(1) 推荐(1)
摘要:今天是被汇编击败的一天,我真的好fw呜呜呜呜呜呜呜呜 ̄へ ̄ 阅读全文
posted @ 2020-03-21 21:16 neverstopcoding 阅读(115) 评论(0) 推荐(0)
摘要:1 //输入一直到为0 2 //C 3 int n; 4 while(scanf("%d",&n)!=EOF&&n!=0){ 5 6 } 7 //C++ 8 int n; 9 while(cin>>n&&n!=0){ 10 11 } 12 13 //数组不知道输入几个整数(由用户控制直到换行): 1 阅读全文
posted @ 2020-03-15 02:10 neverstopcoding 阅读(364) 评论(0) 推荐(0)
摘要:#include<iostream> #include<cstring> #include<cstdlib> using namespace std; int main(){ string s1,s2; cin>>s1>>s2; string maxx=s1,minn=s2; if(s1.size( 阅读全文
posted @ 2020-03-14 23:27 neverstopcoding 阅读(179) 评论(0) 推荐(0)
摘要:模板如下: #include <stdio.h> int main() { int a[20001];//储存每一位所得到的数 int temp,digit,n,i,j=0;//temp每次的得数 digit每次得数的位数 scanf("%d",&n); a[0]=1;//从1开始乘 digit=1 阅读全文
posted @ 2020-03-14 23:11 neverstopcoding 阅读(130) 评论(0) 推荐(0)
摘要:问题重述:Description乔治拿来一组等长的木棒,将它们随机地砍断,使得每一节木棍的长度都不超过50个长度单位。然后他又想把这些木棍恢复到为裁截前的状态,但忘记了初始时有多少木棒以及木棒的初始长度。请你设计一个程序,帮助乔治计算木棒的可能最小长度。每一节木棍的长度都用大于零的整数表示。 Inp 阅读全文
posted @ 2020-03-14 22:53 neverstopcoding 阅读(1183) 评论(0) 推荐(0)
摘要:1 /* 2 s[]: 原进制数字,用字符串表示 3 s2[]: 转换结果,用字符串表示 4 d1: 原进制数 5 d2: 需要转换到的进制数 6 返回值: null 7 说明:如果需要转化成16进制中,使得结果大于9的显示小写字母(例如显示3e而不要3E,虽然其实是一样的), 8 只需要将下面的' 阅读全文
posted @ 2020-03-14 00:51 neverstopcoding 阅读(243) 评论(0) 推荐(0)
摘要:资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述 给定一个n*n的棋盘,棋盘中有一些位置不能放皇后。现在要向棋盘中放入n个黑皇后和n个白皇后,使任意的两个黑皇后都不在同一行、同一列或同一条对角线上,任意的两个白皇后都不在同一行、同一列或同一条对角线上。问总共有多少种放法?n小于等于8 阅读全文
posted @ 2020-03-14 00:31 neverstopcoding 阅读(577) 评论(0) 推荐(0)
摘要:资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述 回文串,是一种特殊的字符串,它从左往右读和从右往左读是一样的。小龙龙认为回文串才是完美的。现在给你一个串,它不一定是回文的,请你计算最少的交换次数使得该串变成一个完美的回文串。 交换的定义是:交换两个相邻的字符 例如mamad 第一次 阅读全文
posted @ 2020-03-12 00:24 neverstopcoding 阅读(531) 评论(0) 推荐(0)
摘要:一、后缀表达式求值 后缀表达式也叫逆波兰表达式,其求值过程可以用到栈来辅助存储。假定待求值的后缀表达式为:6 5 2 3 + 8 * + 3 + *,则其求值过程如下: 1)遍历表达式,遇到的数字首先放入栈中,此时栈如下所示: 2)接着读到“+”,则弹出3和2,执行3+2,计算结果等于5,并将5压入 阅读全文
posted @ 2020-03-10 15:46 neverstopcoding 阅读(441) 评论(0) 推荐(0)