- 博客(114)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 C Brexit(vector-BFS)
题目题意:给出c,p,x,l代表给出c个部落,有p个联盟关系,x代表目标部落,l是最先脱离的部落。接下来有p行,每行输入a,b代表a,b有联盟关系;部落脱离部条件是建立联盟的伙伴>=一半的脱离。询问:x最后如果能脱离联盟输出leave,否则输出stay;思路:建立图,因为题目的数据为2e5,建立二维矩阵开不了vis[2e5][2e5]的空间;用vector存放联盟关系,并用du...
2020-01-11 21:08:00
210
原创 QFileSystemModel
QFileSystemModel提供的接口函数可以创建目录、删除目录、重命名目录,可以获得文件名称、目录名称、文件大小等参数,还可以获得文件的详细信息。在使用QFileSystemModel获取文件名称、文件大小、文件类型以及文件路径时,出现一个错误导致程序不能运行。mainwindow.cpp文件。mainwindow.h文件。
2023-05-18 09:24:20
232
原创 QT-QStirng::fromLocal8Bit()函数用法
qt中的fromLocal8Bit()函数可以设置编码;可以实现从本地字符集GB到Unicode的转换,从而处理汉语显示乱码等问题。QT默认的编码是unicode,不能显示中文,而windows默认使(GBK/GB2312/GB8030):学习QT时,有些中文编码会乱码。
2023-05-09 09:21:42
1591
原创 C. 子序列(尺取法)
题目:https://www.malic.xyz/archives/3117/3刚学了尺取法 没找到测评平台 也不知道写的是否正确尺取法如下代码在这里插入代码片#include <bits/stdc++.h>#include <iostream>#include <cstdio>using namespace std;const int maxn = 5e7+10;const long long Mod = 1e9+7;const int INF
2022-03-05 22:20:05
216
原创 小M和天平(01背包问题)
链接:https://ac.nowcoder.com/acm/problem/13586来源:牛客网题目描述小M想知道某件物品的重量,但是摆在他面前的只有一个天平(没有游标)和一堆石子,石子可以放左边也可以放右边。他现在知道每个石子的重量。问能不能根据上述条件,能不能测出所问的重量。输入描述:多组数据,第一行一个数N,表示石子个数。(1<=N<=100) 接下来第二行N个数,表示石子的重量。(1<=Wi<=100) 接下来第三行一个数M,表示询问个数。(1<=M<
2022-03-04 20:28:34
151
原创 HDU1847-畅通工程续(Floyd算法最短路径)
HDU1847-畅通工程续Problem Description某省自从实行了很多年的畅通工程计划后,终于修建了很多路。不过路多了也不好,每次要从一个城镇到另一个城镇时,都有许多种道路方案可以选择,而某些方案要比另一些方案行走的距离要短很多。这让行人很困扰。现在,已知起点和终点,请你计算出要从起点到终点,最短需要行走多少距离。Input本题目包含多组数据,请处理到文件结束。每组数据第一行包含两个正整数N和M(0<N<200,0<M<1000),分别代表现有城镇的数目和已修
2020-12-03 10:13:31
121
原创 HDU1847-畅通工程续(Dijkstra迪杰斯特拉算法最短路径)
HDU1847-畅通工程续Problem Description某省自从实行了很多年的畅通工程计划后,终于修建了很多路。不过路多了也不好,每次要从一个城镇到另一个城镇时,都有许多种道路方案可以选择,而某些方案要比另一些方案行走的距离要短很多。这让行人很困扰。现在,已知起点和终点,请你计算出要从起点到终点,最短需要行走多少距离。Input本题目包含多组数据,请处理到文件结束。每组数据第一行包含两个正整数N和M(0<N<200,0<M<1000),分别代表现有城镇的数目和已修
2020-12-02 17:57:37
148
原创 拓扑排序(Topological order)
1.前言:好久没写拓扑排序了,再次写代码时竟然忘掉了,打算记录一下重新学习的过程。2.定义:对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边<u,v>∈E(G),则u在线性序列中出现在v之前。通常,这样的线性序列称为满足拓扑次序(Topological Order)的序列,简称拓扑序列。简单的说,由某个集合上的一个偏序得到该集合上的一个全序,这个操作称之为拓扑排序。(百度定义)3.理解
2020-11-26 23:14:35
1020
原创 7-7 就不告诉你 (15 分)(思维)
题目7-7 就不告诉你 (15 分)做作业的时候,邻座的小盆友问你:“五乘以七等于多少?”你应该不失礼貌地围笑着告诉他:“五十三。”本题就要求你,对任何一对给定的正整数,倒着输出它们的乘积。输入格式:输入在第一行给出两个不超过 1000 的正整数 A 和 B,其间以空格分隔。输出格式:在一行中倒着输出 A 和 B 的乘积。输入样例:5 7输出样例:53思路:比赛的时候只得了10分,很困惑没想到wa点,以为是数据大小类型的问题。其实很简单,就是前导零的问题。AC代码#include
2020-11-26 21:19:37
1981
原创 c++中atoi用法
最近补题时学了一种把字符串类型转换成数字型的方法,记录一下。atoi (表示 ascii to integer):是把字符串转换成整型数的一个函数.。说明:1.int atoi(const char *nptr) 函数会扫描参数 nptr字符串,会跳过前面的空白字符(例如空格,tab缩进)等。2.如果 nptr不能转换成 int 或者 nptr为空字符串,那么将返回 0 [1]。3.特别注意,该函数要求被转换的字符串是按十进制数理解的。atoi输入的字符串对应数字存在大小限制(与int类型大小有关
2020-11-11 17:24:04
5145
原创 Binary number(二进制位运算符)
题目题意:给出N转换成二进制后有m个1,求出最小的y>N转换成二进制后1的个数<=m。输出m。思路:透彻理解二进制例如5:101->110. 6:110->1000.从右到左,找到第一个1的位置,在这一位加一后的数即为答案。不能直接暴力找,用一些简单的运算符和位移运算符。知识点:1<<1:101<<2:1001<<3:1000……AC代码#include <bits/stdc++.h>using names
2020-07-11 22:57:57
1089
原创 快速幂(递归和非递归算法)
快速幂(Exponentiation by squaring,平方求幂):简单而高效地计算方法,算法的时间复杂度是O(Log n)。例题:3的5次方如何计算呢?(a的n次方%p)方法一:3*333*3=243(进行四次连乘,复杂度为O(n-1),适用于a,n都很小的情况。方法二(递归算法):(33)(33)3=243。a的n/2次方a的n/2次方a。即a的n-1次方*a。模板:#include <bits/stdc++.h>//递归模板求快速幂;复杂度O(log n)using
2020-06-07 18:17:11
1100
原创 G - Goblin Garden Guards(扫描线或暴力优化)
题目题意:给出g个怪物的坐标(xi,yi),m个喷洒器的坐标,半径(x,y),r;在喷洒器以(x,y)为圆心,r为半径的范围内,怪物会被杀死。问最后剩下多少个怪物。思路:普通暴力超时,借鉴大佬暴力优化,设置怪物的vis[i][j]为1,其余非怪物为0,枚举每一个喷洒器圈的外切矩形,用sum=sum+vis[i][j],sum表示会被杀掉的怪物和。最后用g-sum即为剩下的怪物的坐标。AC...
2020-04-08 23:44:40
277
原创 Problem K Length of Bundle Rope(优先队列)
题目题意:给出T组数据,每组输入n,接下来一行输入n个包裹的大小,用绳子捆绑包裹一次最多捆绑两个包裹,问把这些包裹都捆绑起来最少需要的绳子长度。思路:思考很长时间没有想出来,其实本质上就是一个优先队列题,可以用哈夫曼或手写优先队列,而用c++priority_queue很简单。AC代码#include <bits/stdc++.h>#include <queue&...
2020-04-04 00:04:08
313
原创 I - Inquiry I(简单前缀和应用)
题目The Bureau for Artificial Problems in Competitions wants you to solve the following problem: Given n positive integers a1, . . . , an, what is the maximal value offorma.jpgInput:• A single line...
2020-03-27 20:47:06
243
原创 B - Breaking Branches(博弈)
题目题意:给定一长度为n的线段,Alice和Bob轮流切割线段使之成为两个整数段,最后进行切割的人获胜。若Alice 胜,输出“Alice”,和第一步操作数;否则输出“ Bob”。思路:类似小学问题中的切割线段,切割n段需要n-1次(每次切割1)。若n为偶数,需要奇数次,Alice获胜,输出1;若为奇数,Bob获胜。AC代码#include <bits/stdc++.h>...
2020-03-27 20:32:10
484
原创 G - Lines of Containers(模拟+思维)
题目题意:输入L,C,再输入行为L,列为C大小的矩阵。矩阵元素从左到右 ,从上至下编号按照1……C,C+1……2C,……(L-1)*C……LC为要求的矩阵。问需要最少需要进行多少次行 列变换变换成题意要求的矩阵。思路:这个题的突破口在从1位置入手,标记1的初始位置x,y。从1所在行x进行列变换,若能模拟变换,交换列位置,改变位置y=1;再对第一列元素模拟变换,若能模拟变换,交换行位置。中...
2020-03-07 12:11:47
177
原创 B. WeirdSort(冒泡法排序思维)
题目:代表题意:输入t组数据,输入n,m,再输入n个数a[i],接下来再输入m个数p[i],p[i]代表可以交换下标为p[i]与p[i+1]的值。问是否可以经过交换可以将a[i]变成从小到大的有序序列。思路:当时做没有思路,其实简单,思路与冒泡交换的思路一样,但是只能交换下标符合p[i]与p[i+1]的数。判断最后是否有序。AC代码#include <bits/stdc++.h...
2020-03-05 00:01:11
419
原创 C. Kuroni and Impossible Calculation(抽屉原理)
题目题意:输入n,m;给出n个数,求任意两个数差值的绝对值modm的值。思路:直接o(n*n)会超时;若n>m,利用抽屉原理,至少有两个数同余,结果为0;否则,直接直接暴力判断。AC代码#include <bits/stdc++.h>using namespace std;#define ll long longconst int maxn=2e5+10;l...
2020-03-04 22:59:11
291
原创 M - Marvelous Necklace(前缀和)
题目题意:给出一个字符串(首位相接),由A,B组成,若是能分割成A,B数量一样的两段,输出"YES",输出截取的位置两端a,b;否则输出"NO";思路:题目时间是500ms.字符串为1e5,若是普通暴力会超时,进行优化思路。字符串中A的数量为AA,B的数量为BB;1.AA和BB为任一为奇数就输出“No;2.否则先记录从i=0到i<len/2,计数A,B的个数(已经为题目要求的...
2020-02-21 23:16:57
202
原创 H - Constructing a Number(3的倍数的特征)
题目题意:t组数据,每组输入n,输入n个数,a1,a2,a3……,an;随意交换这n个数的位置;若是可以被3整除,输出“Yes”;否则,输出“No”。思路:根据3的倍数的特征:各位数加起来的和是3的倍数。判断即可。AC代码#include <bits/stdc++.h>using namespace std;long long a[110];int main()...
2020-02-21 22:51:33
405
原创 C - Triangles(三角形思维题)
题目题意:输入n个数,找到一个数x,任意从n个数中选两个数与能构成三角形。若有x,输出YES,输出x;否则输出 NO。思路:先从小到大排序,利用两边之和大于第三边,即x;两边之差小于第三边;(最大的两边之差a[n]-a[1])两边之差<x<两边之和(最小的两边之和a[1]+a[2];)minn<x<maxx。if(minn+1>=maxx)输出NO;否则输...
2020-02-17 13:25:44
806
原创 E - Pairs(思维规律)
题目:E - Pairs题意:给出T组数据,每组10个数,这10个数是由x1,x2,x3,x4,x5两两相加得到的,从小到大地输出每组的这五个数。思路:先给这10个数从小到大排序,sum为10个数的和,可以找规律发现,x3=sum/4,x3为突破口,发现规律。AC代码#include <bits/stdc++.h>using namespace std;long lo...
2020-02-12 18:56:22
620
原创 A - Mental Rotation(模拟)
题目:A - Mental Rotation题意:给出字符组成的图形,字符串:“L”“R”组成的,打印出经过翻转后的次数。思路:L,R翻转四次就重复了,l=l%4,r=r%4;向左翻转3次等于向右翻转1次,l=4-r;再模拟向右翻转的即可。AC代码#include <bits/stdc++.h>using namespace std;char a[1010][10...
2020-02-12 18:43:57
609
原创 确定比赛名次(拓扑排序)
题目来源:http://acm.hdu.edu.cn/showproblem.php?pid=1285Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 47466 Accepted Submission(s): 17980Prob...
2020-02-12 18:13:16
138
原创 费马小定理
1.定义费马小定理是数论中的一个定理。其内容为假如a是一个整数,p是一个质数的话,那么:a^p = a(mod p)假如a不是p的倍数的话,那么这个定理也可以写成:a^(p − 1) = 1(mod p)这个书写方式更加常用些。 2.费马小定理的证明 任意取一个质数,比如13。考虑从1到12的一系列整数1,2,3,4,5,6,7,8,9,10,11,12,给这些数都乘上一个与1...
2020-02-05 21:38:00
1615
5
转载 大数取余算法
当一个数很大时,大到long long int类型都存放不了的时候,我们该怎么办呢?首先我们举个简单的例子来了解该算法的思想:假设有一个数443,我们要求443%3,不妨拿起笔和纸和我一起演算一下我们看到计算过程是:第一位数字4:4%3=14%3=1第二位数字4:(1×10+4)%3=2(1×10+4)%3=2第三位数字3:(2×10+3)%3=2(2×10+3)%3=2最终的结果是...
2020-02-05 17:52:26
2667
原创 c++中getline用法
1.具体用法:getline(cin,inputline)//cin是正在读取的输入流,而inputline是接收输入字符串的string变量的名称2.注意事项1)如果在使用getline()之前有使用scanf(),那么需要用getchar()将前面的换行符读取,再使用getline()2)getline()这个函数是可以读取空格,遇到换行符或者EOF结束,但是不读取换行符的3)当我...
2020-02-05 17:35:31
6258
原创 G - I love Codeforces(思维题)
题目G - I love Codeforces题意:输入n,接下来n行输入n个名字;输入m,接下来m行每行输入u,v,代表u爱上了v。若u爱上v,u就会把名字改成I_love_v,请输出最后第一个人的名字。思路:纯模拟会re,mtl等错误,所以只需要记录用一个数组记录I_love_v的次数即可。AC代码1#include <bits/stdc++.h>using...
2020-01-14 09:51:41
195
原创 H - Horror Film Night(思维)
题目H - Horror Film Night题意:两个人一起电影,每天看一部,输入第一行为n,a1,a2……an;为第一个人喜欢看的电影总数n,其后是喜欢看的电影的编号。输入第二行为m,b1,b2……bn;为第二个人喜欢看的电影总数m,其后是喜欢看的电影的编号。两个人只能看两个人都喜欢的电影或者其中一人喜欢另一个人不喜欢的电影,且不能连续看一个人单独喜欢的电影,求出能看电影的最大数目。...
2020-01-14 09:37:28
316
原创 E - Envious Exponents(二进制+贪心+思维)
题目E - Envious Exponents题意:给出N,K,求M;M为大于N的可以写成k个2的几次幂的最小值。思路:想到二进制,为2的幂次方的和,先将N转换成二进制,记录1的个数ans,分为一下三种情况;第一:若 ans>k,从低位的1位补0,直到ans=k时,转换成第二种情况;第二:若 ans=k,从最低位开始从后向前找,首次出现1的位置,再向前找首次出现0的位置cnt,...
2020-01-14 09:12:18
281
原创 I Older Brother(质因子分解)
题目题意:q=p^k(p为素数,k>=1)问是否能找到这样的p素数;思路:1.基本方法:数据是1e9;时间是1s,1s最多跑3e8;优化一下若是素数直接输出yes;否则利用素数筛把所有的素数存放起来,暴力试探是否q=p^k;2.质因子分解定理(算数基本定理):任何一个大于 1 的整数都能唯一分解为有限个质数的乘积。AC代码1#include <bits/stdc++....
2020-01-12 09:20:47
199
原创 数据结构实验之二叉树五:层序遍历(用c++stl 的queue完成的)
Problem Description已知一个按先序输入的字符序列,如abd,eg,cf,(其中,表示空结点)。请建立二叉树并求二叉树的层次遍历序列。Input输入数据有多行,第一行是一个整数t (t<1000),代表有t行测试数据。每行是一个长度小于50个字符的字符串。Output输出二叉树的层次遍历序列。Sample Input2abd,eg,cf,xnl,i,u,S...
2020-01-11 21:47:10
321
原创 实训linux-项目学习(介绍与基本操作)
前言:最近在实训Linux环境下编写程序,这个系统和windows系统不一样,初次真正接触Linux有点不习惯,但是实训老师说将来工作大多在这个系统下编写程序,万般无难废了cb的调试,一直用终端编写程序,几天下来也习惯了Linux的环境,非常顺手!我要记录一下一下学习这个过程!!!Linux的介绍:1开源-安全-免费(free的系统第一次听说!)2Linux文件系统是一棵单根树;类比Wind...
2019-12-27 21:02:40
1940
原创 B. PIN Codes(字符串处理)
题目B. PIN Codestime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputA PIN code is a string that consists of exactly 4 digits. Examples of possible ...
2019-12-06 00:04:29
497
原创 A. Sweet Problem(思维题贪心)
题目A. Sweet Problemtime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou have three piles of candies: red, green and blue candies:the first pil...
2019-12-05 23:58:41
175
原创 I - Inverted Deck(思维题)
题目题意:给出n个数,若能交换其中的一段数序列使之能从小到大排列。输出改变的左端点和右端点的下标值;否则输出-1;思路:sort一遍使序列成为从小到大的排列,与原串对比查找;1特判与原串相同输出“1 1”;2特判从大到小的情况输出“1 n”;3剩余的情况:left从1开始找不相等的左端点,right从n开始倒着找不相等的右端点;swap (left,right)的序列;若swap与原...
2019-12-05 23:47:27
691
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人