![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
VJ
文章平均质量分 87
碧羽o(* ̄▽ ̄*)ブ回雪
计算机专业有梦想的一枚菜鸟,总有一天菜鸟会变成不菜的菜鸟。
展开
-
c++ H - Half Nice Years Gym - 101840H SDUT
题目大意:有n个区间[L,R],找出满足下满条件的最大的数:1. 将该数平分成两部分,如果该数的位数是奇数则让右侧部分比左侧部分多一位,如123456分成123和456两部分,12345分成12和345两部分,我们把这两部分分别叫pre和past。2. 使得这两部分的最大公约数大于1.解题思路:如果直接暴力解决从R开始一个一个判断到L,知道找到符合题意的,可能会超时。这里需要用到素数的部分内容, 区间最大为11-1e13,所以平分成两部分最大不会超过1e7,找出小于1e7的所有素数。我们从n=R..原创 2020-08-25 20:10:23 · 218 阅读 · 0 评论 -
c++ G - Sphenic numbers Gym - 101243G SDUT
题目大意:给定一个整数判断是否为三个不同素数的乘积解题思路:因为是将一个整数分解成3个素数,所以我们想到唯一分解定理:任何一个大于1的自然数 N,如果N不为质数,那么N可以唯一分解成有限个质数的乘积 N=P1a1P2a2P3a3…Pnan,这里P1<P2<P3…<Pn均为质数,其中指数ai是正整数。这样的分解称为 N 的标准分解式.#include<bits/stdc++.h>using namespace std;/*自定义函数*/int fenjie(.原创 2020-08-21 09:44:12 · 123 阅读 · 0 评论 -
c++ B - Hanoi tower Gym - 101243B SDUT
题目大意:用一个汉诺塔,本题中的汉诺塔和一般汉诺塔有相同的规则,但是这道题求得是,当三个柱子上的盘子相等(也就是每个柱子上有N/3个盘子,这里的N mod 3 == 0)时的最小步骤解题思路:本题不能使用常规的递归,因为数据很大(递归一般在40以内可以递归,但这道题N 最大为300)。本题其实是找规律的题:只是规律比较难找N = 3 6 9 12 15 18sum = 2 9 38 135 542 ...原创 2020-08-20 21:25:17 · 131 阅读 · 0 评论 -
c++ H - Islands Gym - 101291H SDUT
You are mapping a faraway planet using a satellite.Your satellite has captured an image of the planet’s surface. The photographed section can bemodeled as a grid. Each grid cell is either land, water, or covered by clouds. Clouds mean that thesurface c.原创 2020-08-18 11:21:13 · 156 阅读 · 0 评论 -
c++ A - Alphabet Gym - 101291A SDUT
A string of lowercase letters is called alphabetical if deleting zero or more of its letters can result inthe alphabet string “abcdefghijklmnopqrstuvwxyz”.Given a string s, determine the minimum number of letters to insert anywhere in the string tomake.原创 2020-08-18 11:03:44 · 226 阅读 · 0 评论 -
c++ M - Zigzag Gym - 101291M SDUT
Your Ph.D. thesis on properties of integer sequences is coming along nicely. Each chapter is on adifferent type of sequence. The first covers arithmetic sequences. Subsequently you cover binomialsequences, computable sequences, decreasing sequences, and.原创 2020-08-18 10:50:51 · 133 阅读 · 0 评论 -
c++ H - Sudoku HDU - 5547 SDUT
这就是一个数独的题目:给你一个不完整的数独,该数独是1 2 3 4 这四个数组成的,你的目的就是输出一个填充完整的数独。数独:每一行和每一列中的数字都是不相同的,但是本题中还有一个条件,就是在这个44的数独中它的左上左下右上右下的四个22的小矩阵也是不相等的四个数。思路:遍历整个图,采用深度优先搜索是的回溯思想,先从第一个元素开始判断1 2 3 4 这四个数中那个数填上不会产生矛盾(只是填该位置的这个数是不会产生矛盾,但是填上这个数可能岁后面的数产生影响),直到填到一个*无法填1-4的任意一个数,...原创 2020-08-13 19:45:14 · 183 阅读 · 0 评论 -
c++ G - Ancient Go HDU - 5546 SDUT
这是一个棋盘的题目:题目大意:在一个9*9的矩阵中有‘x’ ‘o’ '.‘三种字符,目的是只添加一个’x’让‘o’字符不与’.'直接相连,这里的’o’可以是一个或者是几个,也就是添加一个’x’使得’x’包围’o’思路:输入图后遍历整个图,遇到’o’从该点进行广度优先搜索,搜索的终点是‘x’和 ‘.’ ,其中当遇到 ‘.’ 时用一个计数变量累加,搜索完后判断一共遍历到几个 ’ . ’ 。#include <iostream>#include <string.h>u...原创 2020-08-13 19:28:59 · 126 阅读 · 0 评论 -
c++ Gym - 101020A-Window SDUT
题目大意:给出两个整数x,y计算出以这两个整数为边的矩形的面积题目很简单就是很坑,尤其是这个转载的题目,题目不完整,这个题目需要使用文件输入,但是题目中没有,输入文件为window.in,输入使用标准输出#include <bits/stdc++.h>typedef long long LL;using namespace std;int main(){ freopen("window.in","r",stdin); //打开文件读取数据 LL n,..原创 2020-08-11 20:30:35 · 155 阅读 · 0 评论 -
c++Gym - 101020F - The Best Strategy SDUT
题目大意:一共有n个解题时间,求出在300分钟内最多能解出多少题目,并取出罚时为多少,本题注意罚时不等于用时,罚时等于这道题从开始比赛到解出题目的时长为这道题目的罚时,所以罚时一定大于等于用时#include <iostream>#include <string.h>#include <algorithm>using namespace std;int main(){ int t, n; int a[22]; cin >&..原创 2020-08-11 20:22:44 · 163 阅读 · 0 评论 -
c++ Gym - 101020J - Good coins SDUT
题目大意:给出两个数,如果能用两个数通过数次相加减得到任意正整数,则输出“GOOD”,否则输出“NOT GOOD”解题思路:只要两个数为互质的数就满足题目这个题目的数据有点大原来我以为暴力解决会超时,且没有#include <iostream>#include <string.h>#include <algorithm>#include <math.h>using namespace std;int main(){ int ..原创 2020-08-11 20:13:38 · 136 阅读 · 0 评论 -
c++ Gym - 101020I-Playing With String SDUT
题目大意:给出一个字符串,判断其是否是回文串,如果不是是否能经过交换字母的位置变成回文串,如果不能输出“impossible”,如果能输出该字符串的回文串,如果有多个回文串输出字典序小的串,如abcba和bacab都满足条件但是a的字典序小所以a应该在前输出abcba思路:有一个数组储存字符串中每一个字符出现的次数,如果其中有字符出现次数为奇数但只有一个字符出现次数为奇数,或所有字符出现次数都为偶数,则可以形成回文串,否则不能形成回文串,输出时按照从前到后的顺序输出一般字符,然后再从后向前输出另一半字..原创 2020-08-11 20:04:45 · 199 阅读 · 0 评论 -
素数回文 HDU - 1431
本题数据稍微有点大,所以判断素数时需要开方,并且可以事先求出最大的回文素数 9989899,这样数据量就减少了90%,再就是注意再判断回文的速度比判断素数快,且回文比素数少所以在判断时应选择先判断回文,当数值达到千万后判断素数速度尤为慢,所以先判断回文可以筛掉一大半// K - 素数回文(25).cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//#include <iostream>using namespace std;bool sushu(int .原创 2020-08-04 21:26:58 · 155 阅读 · 0 评论 -
D - Network Report
这个题目的意思就是,找出一个图中任意两个点间的最短路,最后统计长度为1,2,3……的条数。其中如果两个点间有多条最短路,只算一条。这道题其实就是一个Floyd算法的应用。使用Floyd算出任意两个点间的最短路,再统计。#include <iostream>#include <string.h>using namespace std;/*全局变量*/int mp[222][222];int n, m;/*自定义函数*/void Floyd();int .原创 2020-08-04 20:15:59 · 180 阅读 · 0 评论 -
B - Threesome
这道题的题意很简单,就是一个有n个节点的完全图,图中任意两个节点i,j间有一个权值c(i,j),找出三个节点,i,j,k使得c(i, j)+c(j, k)+c(i, k)最大。这个题的数据不大,所以直接用三个for循环就行题目样例一似乎有问题#include <iostream>#include <string.h>using namespace std;int main(){ int mp[333][333]; int t, n, u, v,w.原创 2020-08-04 20:07:52 · 417 阅读 · 0 评论 -
A - Smooth Sequences
题目大意:在n个数中所有相邻的两个数差的绝对值如果不大于d,成这n个数为光滑的,否则如果能更换n个数中一个数使其变成光滑的成为半光滑的。现在给你n个数,如果这n个数为光滑的或半光滑的输出Y,否则输出N。其中光滑的容易判断,再判断出半光滑的,其余都是不光滑的不光滑的有两种情况:一共有两段光滑的数组组成,在两段的交界处存在断点(就是不光滑的地方)。如n=6,d=5 ; 数组为3 7 10 4 5 6。在10 和 4之间就是一个断点。有三段光滑的数组,但是中间的只有一个数。如n=7,d = 5;数组为.原创 2020-08-04 20:01:10 · 126 阅读 · 0 评论 -
VJ Problem C. Concatenation
这个题中,a串和b串能组成的新串个数为strlen(a)strlen(b)。但是其中会有一些重复的字符串,所以只要找出其中重复的串就行。当然要如何找很重要:1.abb和ba会有两个重复的串,所以为32 - 2;2.abb和bba会有四个重复的串,所以为33 - 4;3.abba和bbac会有五个重复的串,所以为44 - 5;所以a串不看第一个字母,b串不看最后一个字母,从a串的第二个字母遍历到最后一个字母1.b字母在第二个串出现一次,接下来还是b字母在第二个串出现一次2.b字母在第二个串出现.原创 2020-07-30 21:50:34 · 161 阅读 · 0 评论 -
C 绝对值排序 SDUT
输入n(n<=100)个整数,按照绝对值从大到小排序后输出。题目保证对于每一个测试实例,所有的数的绝对值都不相等。Input输入数据有多组,每组占一行,每行的第一个数字为n,接着是n个整数,n=0表示输入数据的结束,不做处理。Output对于每个测试实例,输出排序后的结果,两个数之间用一个空格隔开。每个测试实例占一行。Sample Input3 3 -4 24 0 1 2...原创 2020-05-07 17:58:49 · 198 阅读 · 0 评论