- 博客(45)
- 资源 (4)
- 问答 (1)
- 收藏
- 关注
原创 C++——「NOIP2005」采药
题目描述辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。医师为了判断他的资质,给他出了一个难题。医师把他带到一个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价值。我会给你一段时间,在这段时间里,你可以采到一些草药。如果你是一个聪明的孩子,你应该可以让采到的草药的总价值最大。”如果你是辰辰,你能完成这个任务吗?(能,但是我就是不想完成)输入格式第一行有两个整数T(1 <= T
2021-08-04 16:09:49 459
原创 筛素数的方法
今天,我们来介绍三种筛素数的方法:1、暴力枚举法复杂度为O(n*sqrt(n))关键代码:int ans[Maxn],tot;bool isprime(int x){ for(int i=2;i*i<=x;i++) if(x%i==0) return 0; return 1;}for(int i=2;i<=n;i++) if(isprime(i)) ans[tot++]=i;
2021-07-23 20:35:36 192
原创 C++:常用数据及其占位符
1、整型shortunsigned shortint %d -2147483648~2147483647unsigned %ulongunsigned longlong long %lldunsigned long long %llu二、浮点型float %fdouble %lflong double取n位小数:%.nlf删除末尾多余0:%g科学计数法:%e3、字符型char %c4、bool型...
2021-07-06 23:14:19 3245 3
原创 微信抢红包随机算法
做这东西,要讲究2个原则:平均+公平。现在,我们先来介绍一下随机算法:#include<cstdlib>#include<ctime> int main(){ srand(time(0));//产生随机数种子 for(int i=1;i<=10;i++) cout<<rand(); return 0;}运行结果:...
2021-06-12 15:35:02 228
原创 C++:高精度算法
1、加法#include<bits/stdc++.h>using namespace std;int compare(string str1,string str2){ if(str1.length()>str2.length()) return 1; else if(str1.length()<str2.length()) return -1; else return str1.compare(str2);}string add(str
2021-06-07 22:12:47 117
原创 C++:algorithm常用函数
C++网址:www.clpusplus.comalgorithm是C++一个常用的头文件,译为“算法”,其中有几个常用库函数。
2021-06-01 13:09:01 4037 1
原创 C++城市公交网建设问题
题目描述有一张城市地图,图中的顶点为城市,无向边代表两个城市间的连通关系,边上的权为在这两个城市之间修建高速公路的造价,研究后发现,这个地图有一个特点,即任一对城市都是连通的。现在的问题是,要修建若干高速公路把所有城市联系起来,问如何设计可使得工程的总造价最少?输入格式n(城市数,1≤n≤100)e(边数)以下e行,每行3个数i , j , w[i][j],表示在城市 (i,j) 之间修建高速公路的造价。输出格式n-1行,每行为两个城市的序号(a,b)(a<=b),表明这.
2021-08-25 13:27:12 761
原创 [NOI2000] 瓷片项链 题解
题目描述原始部落用一种稀有的泥土烧制直径相同的圆瓷片并串成项链,串的时候沿瓷片的直径方向顺次连接,瓷片之间没有空隙也不重叠,一条项链至少由一个瓷片构成。下图示出四片同样大小的瓷片串接所成的项链,其总长为单个瓷片直径的四倍。每个烧制的瓷片厚度是一定的,直径D和所用泥土的体积V有以下关系:其中V0为烧制每一片的损耗,单位与V相同。当用料小于等于V0时,不能烧制成瓷片。 例:V总 = 10,V0 = 1,若烧制成一片瓷片,V = V_总= 10,D = 0.9V...
2021-08-22 17:41:04 386
原创 图的搜索遍历(三道模板题:有向图的DFS+有向图的BFS)
【例一】有向图的DFS题目描述给定一个有向图,有N个顶点,M条边,顶点从1..N依次编号,求出字典序最小的深度优先搜索顺序。输入格式第1行:2个整数,N(1≤N≤200)和M(2≤M≤5000) 接下来M行,每行2个整数I,J,描述一条边从顶点I指向顶点J输出仅一行,一个顶点编号序列,表示字典序最小的深度优先搜索序列.顶点之间用一个空格分开样例样例输入3 31 21 32 3样例输出1 2 3模板一:有向图的DFS。AC Code:#inc
2021-08-16 13:22:45 1478
原创 C++多源最短路
题目描述有 $n$ 个城市,从 $1$ 到 $n$ 给他们编号,它们之间由一些单向道路(即一条道路只能从一个方向走向另一个方向,反之不行)相连,每条路还有一个花费 $c_i$,表示通过第 $i$ 条边需要花费$c_i$的时间。求任意两点间的最快路径。输入格式第一行一个整数 $n$,表示有多少个城市和多少条道路。接下来 $n$行,每行 $n$个整数第 $i+1$ 行第 $j$ 个数 $x$ 表示从i到j有一条花费为 $x$ 的边。(第 $i+1$ 行第 $i$ 个数为 $0$)输出
2021-08-15 23:40:17 832 1
原创 C/C++头文件汇总
#include<assert.h> //设定插入点#include <ctype.h> //字符处理#include <errno.h> //定义错误码#include <float.h> //浮点数处理#include <fstream.h> //文件输入/输出#include <iomanip.h> //参数化输入/输出#include<iostream.h> /.
2021-08-14 13:16:03 453
原创 「NOIP2015普及组」扫雷游戏
题目描述扫雷游戏是一款十分经典的单机小游戏。在 n 行 m 列的雷区中有一些格子含有地雷 (称之为地雷格),其他格子不含地雷(称之为非地雷格)。玩家翻开一个非地雷格时, 该格将会出现一个数字——提示周围格子中有多少个是地雷格。游戏的目标是在不翻出 任何地雷格的条件下,找出所有的非地雷格。现在给出 n 行 m 列的雷区中的地雷分布,要求计算出每个非地雷格周围的地雷格数。注:一个格子的周围格子包括其上、下、左、右、左上、右上、左下、右下八个方 向上与之直接相邻的格子。输入格式输入文件名为m.
2021-08-12 22:46:56 263
原创 你见过真正的O2优化吗?
你见过真正的O2优化吗?#pragma GCC optimize(2)#pragma GCC optimize(3)#pragma GCC optimize("Ofast")#pragma GCC optimize("inline")#pragma GCC optimize("-fgcse")#pragma GCC optimize("-fgcse-lm")#pragma GCC optimize("-fipa-sra")#pragma GCC optimize("-ftree-pre"
2021-08-07 23:34:44 301
原创 「NOIP2007」纪念品分组
题目描述元旦快到了,校学生会让乐乐负责新年晚会的纪念品发放工作。为使得参加晚会的同学所获得 的纪念品价值相对均衡,他要把购来的纪念品根据价格进行分组,但每组最多只能包括两件纪念品, 并且每组纪念品的价格之和不能超过一个给定的整数。为了保证在尽量短的时间内发完所有纪念品,乐乐希望分组的数目最少。你的任务是写一个程序,找出所有分组方案中分组数最少的一种,输出最少的分组数目。输入格式输入文件包含n+2行:第1行包括一个整数w,为每组纪念品价格之和的上眼= 第2行为一个整数n,表示购来的纪念品的
2021-08-07 16:11:28 321
原创 【模板】快读快写
首先,我们来了解一下标准输入输出的快慢顺序:cin/cout最慢->scanf/printf其次->getchar/putchar最快所以,为了防止输入输出TLE,快读快写无疑是兵家必备必备头文件:#include <cstdio>1、string类型其实也快不了多少(1)快读(可读空格)void getch(string &a) { char ch = getchar(); while (ch != '\n') {
2021-08-06 14:40:06 398
原创 C++——「NOIP2005」校门外的树(BZOJ8347\25166)
题目描述某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米。我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置;数轴上的每个整数点,即0,1,2,……,L,都种有一棵树。由于马路上有一些区域要用来建地铁。这些区域用它们在数轴上的起始点和终止点表示。已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。现在要把这些区域中的树(包括区域端点处的两棵树)移走。你的任务是计算将这些树都移走后,马路上还有多少棵树。输入格式第一行有两个整数L(1 &
2021-08-05 23:40:46 1015 1
原创 C++——「NOIP2002」马拦过河卒
题目描述棋盘上A点有一个过河卒,需要走到目标B点。卒行走的规则:可以向下、或者向右。同时在棋盘上C点有一个对方的马,该马所在的点和所有跳跃一步可达的点称为对方马的控制点。因此称之为“马拦过河卒”。棋盘用坐标表示,A点(0, 0)、B点(n, m)(n, m为不超过20的整数),同样马的位置坐标是需要给出的。现在要求你计算出卒从A点能够到达B点的路径的条数,假设马的位置是固定不动的,并不是卒走一步马走一步。输入格式第1行:4个数据,分别表示B点坐标和马的坐标。输出格式第1行:1个数
2021-08-05 14:48:57 274
原创 C++——树的统计(附毒瘤数据)
题目描述输入森林中的节点关系,统计森林中树的数量,输出树的根。输入格式第1行:输入两个整数n, k第2~k+1行:每行两个节点编号:i, ji是j的父节点输出格式第一行:树的数量第二行:依次输出森林中树的根节点编(从小到大)样例输入:9 71 22 34 64 57 89 19 4输出:27 9数据范围与提示:n<=100k<=100i<=100j<=100(毒瘤数据)63 12...
2021-08-03 12:27:27 590
原创 一个好网址
这个网址真的非常好,不仅可以怼人,还可以制作个性签名:http://mc.whitegem.net/这是本蒟蒻的:http://mc.whitegem.net/image/eyJpIjoxLCJpbWciOiJjM2RiMGFkZjM0YzQ1NTA5OGU3OGQ0NTI2YmU0MjEyYmRkNDc5MzY5MThmNTc2NTFkMDk0MWJiOThiNmU1NmVmIiwiZiI6IndxeS1taWNyb2hlaS50dGYiLCJ0YyI6ImdyZWVuIiwidCI6IjZJNjM1
2021-07-22 19:50:39 697
原创 C++:亲戚(relation)
题目简介:一道并查集的模板题题目描述或许你并不知道,你的某个朋友是你的亲戚。他可能是你的曾祖父的外公的女婿的外甥女的表姐的孙子(辈分挺长)。如果能得到完整的家谱,判断两个人是否是亲戚应该是可行的,但如果两个人的最近公共祖先与他们相隔好几代,使得家谱十分庞大,那么检验亲戚关系实非人力所能及。在这种情况下,最好的帮手就是计算机。为了将问题简化,你将得到一些亲戚关系的信息,如Marry和Tom是亲戚,Tom和Ben是亲戚,等等。从这些信息中,你可以推出Marry和Ben是亲戚。请写一个程序,对于我们的
2021-07-19 20:39:38 1267
原创 并查集的故事
并查集: : 查找x属于哪个集合,如果x属于某一个集合,则返回该集合的代表。 :如果元素与元素,分别属于不同的集合,则将两个集合合并,否则不操作。 并查集基础操作:初始化void makeSet(int n){ for(int i=1;i<=n;i++) dad[i]=i;}并查集基础操作:合并只需要将每个集合的代表进行链接即可void unionSet(int x,int y){ dad[findSet(x)]=findSet(y);}...
2021-07-19 18:36:43 98 4
原创 C++: 队列及其操作
内存限制:128 MiB 时间限制:1000 ms 标准输入输出题目类型:传统 评测方式:文本比较题目描述队列(queue):在线性表的一端插入元素,在另一端删除元素,所以遵循先进先出( **FIFO**)原则,元素从队尾进,队首出,不允许插队!其中删除元素的一端称为队首(front),插入元素的一端称为队尾(rear)。队列就像我们排队打饭,先来的先打饭,后来的只能排在队尾。输入格式第1行包含一个整数,表示有条关于queue的操作,在进行任何操作之前,queue...
2021-07-19 12:58:22 2696 2
原创 C++:去重
夕阳西下,断肠人在天涯。 ——元·马致远《天净沙·秋思》题目描述明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了个随机整数,对于其中重复的数字,只保留一个,把其余相同的数去掉,并把去重后的数由小到大输出。输入格式第行为个正整数,表示所生成的随机数的个数:;第行有个用空格隔开的正整数,为所产生的随机数。输出格式第行为个正整数,表示不相同的随机数的个数。第行为个用空格隔开的正整数,为从小到大排好序的不相同的随...
2021-07-18 17:08:36 939
原创 C++上网统计
内存限制:256 MiB时间限制:1000 ms题目类型:传统评测方式:文本比较题目描述在一个网络系统中有N个用户1≤N≤1000、M次上网记录1≤M≤5000。每个用户可以自己注册一个用户名,每个用户名是一个只含小写字母的字符串。每个上网的账号每次上网都会浏览网页,网页名是一串只含小写字母的字符串,每次上网日志都会留下记录,现在请你统计一次上网日志中,每个用户浏览了多少个网页。(输出按照输入顺序输出)输入格式第一行N和M 第2行到第M+1行为M条上网日志,每行两个字符串,用空格
2021-07-17 23:50:18 1064 2
原创 BZOJ3343——C++:小球(drop)
题目描述许多的小球一个一个的从一棵满二叉树上掉下来组成FBT(Full Binary Tree,满二叉树),每一时间,一个正在下降的球第一个访问的是非叶子节点。然后继续下降时,或者走右子树,或者走左子树,直到访问到叶子节点。决定球运动方向的是每个节点的布尔值。最初,所有的节点都是false,当访问到一个节点时,如果这个节点是false,则这个球把它变成true,然后从左子树走,继续它的旅程。如果节点是true,则球也会改变它为false,而接下来从右子树走。满二叉树的标记方法如下图:因为所有的节
2021-07-16 19:48:55 784
原创 C++:#155. 括号配对
题目描述Hecy 又接了个新任务:BE 处理。BE 中有一类被称为 GBE。以下是 GBE 的定义:空表达式是 GBE 如果表达式A是 GBE,则[A]与(A)都是 GBE 如果A与B都是 GBE,那么AB是 GBE下面给出一个 BE,求至少添加多少字符能使这个 BE 成为 GBE。输入格式输入仅一行,为字符串 BE。输出格式输出仅一个整数,表示增加的最少字符数。样例样例输入复制[])样例输出复制1数据范围与提示对...
2021-07-14 23:02:09 273 1
原创 C++:#6744. 去重
题目描述明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了个随机整数,对于其中重复的数字,只保留一个,把其余相同的数去掉,并把去重后的数由小到大输出。输入格式第行为个正整数,表示所生成的随机数的个数:;第行有个用空格隔开的正整数,为所产生的随机数。输出格式第行为个正整数,表示不相同的随机数的个数。第行为个用空格隔开的正整数,为从小到大排好序的不相同的随机数。样例样例输入复制1020 40 32 ...
2021-07-14 22:55:37 106
原创 C. 【递推算法】放苹果
内存限制:128 MiB时间限制:1000 ms标准输入输出题目类型:传统评测方式:文本比较题目描述把n个同样的苹果放在m个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。输入格式第1行:包含二个整数n和m,以空格分开。1<=M,N<=10。输出格式第1行:输出相应的K。样例样例输入7 3样例输出8提示:打表或递归!!!AC代码:1、#include<
2021-07-11 22:05:10 228
原创 C++:贪吃蛇
Accepted Wrong Answer Runtime Error Invalid Interaction Time Limit Exceeded Memory Limit Exceeded Output Limit Exceeded File Error Pending Compile Error System Error No Testdata Partially Correct Judgement Failed Unknown|\ __ \ |\ \ |\ \ |\ \ |\ __ \ |\.
2021-07-10 21:45:03 184 1
原创 C++:合并果子
题目描述在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。 多多决定把所有的果子合成一堆。每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过n-1次合并之后,就只剩下一堆了。多多在合并果子时总共消耗的体力等于每次合并所耗体力之和。因为还要花大力气把这些果子搬回家,所以多多在合并果子时要尽可能地节省体力。 假定每个果子重量都为1,并且已知果子的种类数和每种果子的数目,你的任务是设计出合并的次序方案,使多多耗费的体力最少,并输出
2021-07-09 22:18:48 470 5
原创 一个好玩的c++小游戏 另外一个是木马病毒
#include<stdio.h>#include<ctime>#include<time.h> //suiji#include<windows.h> //SLEEP函数struct Player //玩家结构体,并初始化player{char name[21];int attack;int defense;int health;long int max_health;int level;int exp;int range_exp;.
2021-07-03 14:34:22 4469 3
原创 【枚举】方格填数
#include<bits/stdc++.h>using namespace std;int n,maxn;int main(){ cin>>n; for(int i=ceil(n/33.0);i>=0;i--){ if(i==ceil(n/33.0)) maxn=i*1900; else{ int k=i*1900+ceil((n-i*33)/49.0)*3300; maxn=min(maxn,k); } } c...
2021-07-02 22:10:56 463
原创 【递推算法】马拦过河卒(动态规划)
#include<iostream>#include<cstdio>#include<bits/stdc++.h>#include<windows.h>using namespace std;int main(){int a=0,sheng=20,gong=10,fang=10,b,shengm=20,yao=0;int guais,guaig,qian=0,c;while(a==0){cout<<"1.勇者商店"<<.
2021-07-02 15:28:02 539
原创 P2433 【深基1-2】小学数学 N 合一(题解)
这是一道水题+坑题顺序结构的题单里竟然有选择结构!题目描述问题 1请输出I love Luogu!问题 2这里有 10 个苹果,小A 拿走了 2 个,Uim 拿走了 4 个,八尾勇拿走剩下的所有的苹果。我们想知道:小A 和 Uim 两个人一共拿走多少苹果? 八尾勇能拿走多少苹果?现在需要编写一个程序,输出两个数字作为答案,中间使用空格分开。问题 3现在有 14 个苹果。要均分给 4 名同学,分不掉的苹果放回冰箱。请问: 每位同学能分得几个苹果? 一..
2021-06-28 15:36:09 1762 1
原创 C++:cout自动保留小数应用——【例3.10】简单计算器
【题目描述】一个最简单的计算器支持+,-,*,/四种运算。输入只有一行:两个参加运算的数和一个操作符(+,-,*,/)。输出运算表达式的结果。考虑下面两种情况:(1)如果出现除数为0的情况,则输出:Divided by zero!(2)如果出现无效的操作符(即不为+,-,*,/之一),则输出:Invalid operator!【输入】一行,前面两个数,再一个运算符号。【输出】运算表达式的结果。【输入样例】34 56 +【输出样例】90【提示】
2021-06-23 20:05:04 1064
原创 游戏真好玩
#include<bits/stdc++.h>using namespace std;long long a,n,m;char x,y;int main(){ system("color 3F"); srand(time(0)); cout<<"请输入总题数:"<<endl; cin>>n; cout<<"答题开始!"<<endl; for(int i=1;i<=n;i++){ a=rand()%3; .
2021-06-10 22:18:35 118 3
原创 C++:又是一个小游戏
#include<bits/stdc++.h>using namespace std;long long a,b,c,d,x,n;int main(){ system("color 1D"); srand(time(0)); while(1){ a=rand()%3+1,b=rand()%3+1; cout<<"请选择:(1至3)"<<endl; cin>>n; while(b==a&&b==n) b=ran.
2021-06-08 20:34:47 112 2
原创 判断奇偶:钻个小空子(来自http://www.cqyc.com:8888/p/10201)
首先,我们来读一读题:10201 - 判断奇偶通过次数603提交次数1437旧版界面时间限制 : 1000 毫秒内存限制 : 128 MB输入一个正整数,请判断是奇数还是偶数。如果是奇数,输出11,否则输出00。输入输出样例输入复制13输出复制1输入复制20输出复制0...
2021-06-07 16:22:31 3162
我有一个问题?????
2021-06-16
TA创建的收藏夹 TA关注的收藏夹
TA关注的人