- 博客(30)
- 收藏
- 关注
原创 Compression and Expansion CodeForces1523C
#include <bits/stdc++.h>using namespace std;typedef long long ll;int main(){ int t,n; cin>>t; while(t--) { int w; vector<int>v; scanf("%d",&n); for (int i=1; i<=n; ++i) { scanf("%d",&w); if (w>1)
2021-06-16 21:18:55
192
原创 Lightoj 1236
思路在代码里~~#include <iostream>#include <math.h>#include <string.h>#include <algorithm>#include <queue>#define ll long longusing namespace std;const int N=1e7+10;bool vis[N];int prime[1000000],tot;void init(){ tot=0;
2021-05-17 09:13:57
136
原创 CodeForces 1511B
题意就是给你三个数a,b,c,a是x的位数,b是y的位数,c是GCD(x,y)的位数,求出符合条件的x,y思路:GCD(x,y)是x和y的最大公约数,是一定能整除x,y的。我们不妨想简单点,设a=4,b=5,c=3,最简单的符合条件的就是pow(10,a-1)=1000,pow(10,b-1)=10000,pow(10,c-1)=100。可是GCD(1000,10000)=1000,我们必须让GCD等于100;可以通过10000+100=10100来获得新的Y,这样GCD(1000,10100)=
2021-05-15 19:35:20
185
原创 B Build Roads大数规律题,最小生成树
又是规律题#include <iostream>#include <math.h>#include <string.h>#include <algorithm>#include <queue>#define ll unsigned long longusing namespace std;const int maxn=1e7+9;int n,L,R,a[200001];ll seed;int tot=0;ll xors()
2021-05-14 16:46:59
358
原创 HAdventurer‘s Guild dp题
发一个dp用来自己看#include <iostream>#include <math.h>#include <string.h>#include <algorithm>#include <queue>#define ll long longusing namespace std;const int maxn=1100;int h[maxn],s[maxn],w[maxn];int dp[400][400];int main(
2021-05-14 15:51:29
145
原创 poj1905
#include <iostream>#include <iomanip>#include <math.h>#include <queue>#define ll long longusing namespace std;const double esp=1e-6;int main(){ double L,n,c; double r; while(cin>>L>>n>>c) { if (L<
2021-05-11 19:57:30
96
原创 poj2635
#include <iostream>#include <math.h>#include <queue>#include <string.h>#define ll long longusing namespace std;const int maxn=2e6+10,inf=0x3f3f3f3f;int cnt,prime[maxn];bool isprime[maxn];void prime_table(){ memset(isprime
2021-05-10 21:27:56
74
原创 poj2318 TOYS
#include <iostream>#include <cstring>#define ll long longusing namespace std;//const int maxn=struct point{ int x,y;};struct node{ point a,b;} pp[5100];int pos[5100];int judge(int x,int y,int mid){ int k=(pp[mid].a.x-x)*(pp[mid]
2021-04-29 15:53:38
103
原创 7-11 阅览室
天梯图书阅览室请你编写一个简单的图书借阅统计程序。当读者借书时,管理员输入书号并按下S键,程序开始计时;当读者还书时,管理员输入书号并按下E键,程序结束计时。书号为不超过1000的正整数。当管理员将0作为书号输入时,表示一天工作结束,你的程序应输出当天的读者借书次数和平均阅读时间。注意:由于线路偶尔会有故障,可能出现不完整的纪录,即只有S没有E,或者只有E没有S的纪录,系统应能自动忽略这种无效纪录。另外,题目保证书号是书的唯一标识,同一本书在任何时间区间内只可能被一位读者借阅。输入格式:输入在第一行给
2021-04-23 13:45:36
174
原创 7-8 整除光棍
思路:模拟一个除法的过程#include <bits/stdc++.h>#define ll long longusing namespace std;int main(){ int i,j,k,n,m; int x=0,flag=0; cin>>n; for (i=1;; i++) { x=x*10+1;/*x需要先大于n,才能和n开始相除,然后在除的过程中万一x小于n了,就可以这一位补零,向后走一位继续运算,所以用到flag,不然的话万一前几位不够n,就
2021-04-23 13:27:15
130
原创 7-5 谷歌的招聘 (15 分)
注意细节:1.找素数应该排除0和12.题干要求有前导零的必须输出,所以就算sum判断是素数,也不能直接输出sum,应该输出这k个字符。#include <bits/stdc++.h>#define ll long longusing namespace std;//const int maxn=int isprime(int x){ if (x==0||x==1) return 0; for (int i=2; i<=(int)sqrt(x); i++) if
2021-04-23 12:56:43
767
原创 天梯赛 L3凑零钱
韩梅梅喜欢满宇宙到处逛街。现在她逛到了一家火星店里,发现这家店有个特别的规矩:你可以用任何星球的硬币付钱,但是绝不找零,当然也不能欠债。韩梅梅手边有 104 枚来自各个星球的硬币,需要请你帮她盘算一下,是否可能精确凑出要付的款额。输入格式:输入第一行给出两个正整数:N(≤104)是硬币的总个数,M(≤102)是韩梅梅要付的款额。第二行给出 N 枚硬币的正整数面值。数字间以空格分隔。输出格式:在一行中输出硬币的面值 V1≤V2≤⋯≤Vk,满足条件 V1+V2
2021-04-21 13:47:03
161
原创 天梯赛 关于堆的判断
思路在代码里#include <bits/stdc++.h>using namespace std;int heap[1001],n;void insert(int n,int num)//插入并构建最小堆 { heap[n]=num; int l=n; while(l/2>=1) { int temp=l/2; if (heap[l]<heap[temp]) { int m=heap[l]; heap[l]=heap[temp]; h
2021-04-20 19:18:17
110
原创 20蓝桥杯模拟 走方格(dp)
在平面上有一些二维的点阵。这些点的编号就像二维数组的编号一样,从上到下依次为第 1 至第 n 行,从左到右依次为第 1 至第 m列,每一个点可以用行号和列号来表示。现在有个人站在第 1 行第 1 列,要走到第 n 行第 m 列。只能向右或者向下走。注意,如果行号和列数都是偶数,不能走入这一格中。问有多少种方案。输入格式输入一行包含两个整数 n, m。输出格式输出一个整数,表示答案。样例输入3 4样例输出2样例输入6 6样例输出0测试数据对于所有评测用例,1 ≤ n ≤ 30,
2021-04-16 21:10:18
223
原创 02蓝桥模拟 合并检测
题目描述新冠疫情由新冠病毒引起,最近在 A 国蔓延,为了尽快控制疫情, A 国准备给大量民众进病毒核酸检测。然而,用于检测的试剂盒紧缺。为了解决这一困难,科学家想了一个办法:合并检测。即将从多个人( k 个)采集的标本放到同一个试剂盒中进行检测。如果结果为阴性,则说明这 k 个人都是阴性,用一个试剂盒完成了 k 个人的检测。如果结果为阳性,则说明至少有一个人为阳性,需要将这 k 个人的样本全部重新独立检测(从理论上看,如果检测前 k−1 个人都是阴性可以推断出第 k 个人是阳性,但是在实际操作
2021-04-16 20:19:37
149
原创 2020蓝桥国赛 阶乘约数
问题描述定义阶乘 n! = 1 × 2 × 3 × · · · × n。请问 100! (100 的阶乘)有多少个约数。思路:(菜鸡根本没思路好吗?!!)约数定理/唯一分解定理/中国剩余定理。任何一个大于1的自然数,如果N不为质数(质数是除了1和它本身,不被任何数整除的数),都可以唯一分解成有限个质数的乘积,这里均为质数,其诸指数是正整数。一个大于1的正整数N,如果它的标准分解式为 ,那么它的正因数个数为文字不容易理解,看例题吧:例题:正整数378000共有多少个正约数?解:将3780
2021-04-14 20:18:42
344
原创 2020蓝桥杯E题:七段码
先使用e [ ] [ ]把7条边的关系储存一下,表示哪两条边可以连接起来,然后从第一个边开始深搜,每条边有亮或不亮两种可能。等搜索到第7条边时,就要看看这些边符不符合条件。每使用dfs搜索出来一条路径。(这个路径的情况和前一条是无关的,所以每次并查集需要初始化)然后遍历找出相通的两条边,book[i],book[j]是i和j这两条边亮,把这两条亮且相通的边依附到一个根节点上。(别忘了能亮且相通的边不止一对,我们都要找出来,所以需要两层for循环遍历)到最后找一下根节点是否只有一个,如果是,符合条件,a
2021-04-13 20:31:55
266
原创 2019蓝桥杯E题迷宫
广搜,在结构体里记录到达终点的路径,最后到达终点时输出。#include <string.h>#include <stdio.h>#include <math.h>#include <queue>#include <algorithm>#include <iostream>#define ll long longusing namespace std;int to[4][2]= {1,0,0,-1,0,1,-1,0};
2021-04-12 21:30:14
81
原创 2019蓝桥杯G题:完全二叉树的权值
思路:还以为要建一个二叉树呢,瞬间没思路了,事后放轻松看看题,一会儿就做出来了…心理素质堪忧啊先用c记录这个树有几层,然后对每层,求出该层的最左边和最右边的下标,然后一个for循环求这一层的sum,找最大的sum,同时记录这一层是第几层;对于最后一层,由于n可能小于等于2^n-1,所以注意一下。#include <string.h>#include <stdio.h>#include <math.h>#include <queue>#includ
2021-04-12 21:19:00
134
原创 2019蓝桥杯 D题: 数的分解
题目描述把 2019分解成 3个各不相同的正整数之和,并且要求每个正整数都不包含数字2和4,一共有多少种不同的分解方法?注意交换 3个整数的顺序被视为同一种方法,例如 1000+1001+18和1001+1000+18被视为同一种。思路:1.找到三个不相同的整数,使其之和等于2019,并且每个整数都不含数字2,42.交换三个数的顺序视为同一种所以我们可以使用两层for循环分别取两个数,第一层i取值:1到2019,第二层j取值首先从i+1取,第三个数直接2019-i-j就可得到,再对比一下三
2021-04-12 19:48:51
412
原创 2019蓝桥B题 年号字串
年号字符(5分)题目描述小明用字母 A对应数字 1,B对应 2,以此类推,用 Z对应 26。对于 27以上的数字,小明用两位或更长位的字符串来对应,例如 AA对应27,AB对应28,AZ对应52,LQ对应329。请问2019对应的字符串是什么?这道题目实际就是一个将十进制转换为26进制,分析题目给的数据A:1126^0=1B:2226^0=2C:3326^3=3。。。。。。Z:262626^0=26AA:271 * 26^1 + 1 * 26 ^ 0=27。。。AZ:52
2021-04-12 19:31:12
608
1
原创 2017蓝桥杯 H:包子凑数
题目:小明几乎每天早晨都会在一家包子铺吃早餐。他发现这家包子铺有N种蒸笼,其中第i种蒸笼恰好能放Ai个包子。每种蒸笼都有非常多笼,可以认为是无限笼。每当有顾客想买X个包子,卖包子的大叔就会迅速选出若干笼包子来,使得这若干笼中恰好一共有X个包子。比如一共有3种蒸笼,分别能放3、4和5个包子。当顾客想买11个包子时,大叔就会选2笼3个的再加1笼5个的(也可能选出1笼3个的再加2笼4个的)。当然有时包子大叔无论如何也凑不出顾客想买的数量。比如一共有3种蒸笼,分别能放4、5和6个包子。而顾客想买7个包
2021-04-03 17:49:14
147
原创 2018蓝桥杯 F:递增三元组
给定三个整数数组A = [A1, A2, … AN],B = [B1, B2, … BN],C = [C1, C2, … CN],请你统计有多少个三元组(i, j, k) 满足:1)1 <= i, j, k <= N2)Ai < Bj < Ck【输入格式】第一行包含一个整数N。第二行包含N个整数A1, A2, … AN。第三行包含N个整数B1, B2, … BN。第四行包含N个整数C1, C2, … CN。对于30%的数据,1 <= N <= 10
2021-04-02 21:05:02
263
原创 2017蓝桥杯 J:K倍区间
给定一个长度为N的数列,A1, A2, … AN,如果其中一段连续的子序列Ai, Ai+1, … Aj(i <= j)之和是K的倍数,我们就称这个区间[i, j]是K倍区间。你能求出数列中总共有多少个K倍区间吗?输入第一行包含两个整数N和K。(1 <= N, K <= 100000)以下N行每行包含一个整数Ai。(1 <= Ai <= 100000)输出输出一个整数,代表K倍区间的数目。例如:输入:5 212345程序应该输出:6思路:要计算
2021-04-01 21:39:07
176
原创 2017蓝桥杯 G:日期问题
日期问题小明正在整理一批历史文献。这些历史文献中出现了很多日期。小明知道这些日期都在1960年1月1日至2059年12月31日。令小明头疼的是,这些日期采用的格式非常不统一,有采用年/月/日的,有采用月/日/年的,还有采用日/月/年的。更加麻烦的是,年份也都省略了前两位,使得文献上的一个日期,存在很多可能的日期与其对应。比如02/03/04,可能是2002年03月04日、2004年02月03日或2004年03月02日。给出一个文献上的日期,你能帮助小明判断有哪些可能的日期对其对应吗?输入一个日期,
2021-04-01 21:08:48
201
原创 2017蓝桥杯 E:取数位
取数位:求1个整数的第k位数字有很多种方法。 以下的方法就是一种。// 求x用10进制表示时的数位长度int len(int x){ if(x<10) return 1; return len(x/10)+1;} // 取x的第k位数字int f(int x, int k){ if(len(x)-k==0) return x%10;//如果要找的长度正好等于数字x的全长,//那直接取x最后一位即可,比如x=23456,取第五位,直接x%10得到第五位:6 ret
2021-03-31 21:26:07
179
原创 2017蓝桥杯 D:方格分割
题意:6x6的方格,沿着格子的边线剪开成两部分。要求这两部分的形状完全相同。思路:把样例图案剪开,看到只有两个点在边界上,且一定经过 (3,3)点。很显然一个图案可以以(3,3)点为中心旋转得到另一个图案。那么以(3,3)为起点进行深搜,深搜到一个点那么它相对于中心(3,3)的对称点相当于也搜过了。如果发现一个图形搜到了边界,那么它的对称图形也搜了边界。 沿着已经搜过的点剪开,那么剪开的两个图形就是符合条件的。但要注意最终的结果要除以4,因为同一个图案,有朝着上下左右的四个摆放位置,但图案都一样。
2021-03-31 21:10:15
398
1
原创 题目:反转
```cpp#include <string.h>#include <stdio.h>#include <math.h>#include <algorithm>#include <iostream>#define ll long longusing namespace std;const int inf=0x3f3f3f,maxn=11000;int main(){ int i,j,n,x,y,z; int a[maxn].
2021-03-26 20:28:23
83
原创 HDU2502 月之数 c语言
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...
2020-03-27 12:22:58
312
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人