自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

原创 (狙击赛第一,二场记录)

有一个有向边集E,每个边有一个花费p,一开始有一个空图G,Alice有c元钱,现在她需要从边集E中选出来一些边添加到G中,且这些边的总花费不能超过c。所以Alice只需要尽可能凑出一个环来就行,因此只需要找到图中的最小环,设该最小环的总权值为w,如果c<w,就1,否则就是2。给你n种不同的食物,每种食物有a i多个,食物个数不超过1e5,现在一共有m个人,1≤k≤m ,每种食物最多拿一个,每个人可以拿多种食物,输出食物分配方案。把图中所有的边(u→v)分为2类,一类是u>v的边,一类是u<v的边。

2023-08-11 09:17:44 88

原创 快速幂--1

给你三个整数 a,b,pa,b,p,求 a^b \bmod pabmodp。,其中 a,b,pa,b,p 分别为题目给定的值, ss 为运算结果。输入只有一行三个整数,分别代表 a,b,pa,b,p。

2023-03-10 15:35:16 142

原创 [Aya Round 1 A] 幻想乡扑克游戏

tt 3<4<5<6<7<8<9<10<J<Q<K<A<2<\stackrel{\mathclap{\color{white}\textbf{\textit{wxy}}}}{\text{小王}} < \text{大王}3<4<5<6<7<8<9<10<J<Q<K<A<2<小王wxy<大王。你认为,如果自己的手牌中存在王炸(即大小王各一张)或者至少一个炸弹(即四张数码相同的牌),则你会选择叫地主。游戏开始时,将会给 33 名玩家各自发放 1717 张牌作为手牌,余下三张作为底牌。且牌的大小关系和花色无关。

2023-03-10 15:17:44 135

原创 NOIP1998 提高组] 拼数

设有 n个正整数 a1​…an​,将它们联接成一排,相邻数字首尾相接,组成一个最大的整数。第二行有 n 个整数,表示给出的 n 个整数 ai​。第一行有一个整数,表示数字个数 n。一个正整数,表示最大的整数。

2023-03-10 13:47:27 120

原创 2022CCPC威海赛

CCPC较难

2022-11-21 14:18:07 341

原创 ACM训练

hh

2022-11-05 01:15:00 1130

原创 BFS + 三维

来源:牛客网Nancy喜欢吃果冻!Nancy钻进了一个n×n×nn \times n \times nn×n×n的果冻里,她想从(1,1,1)一路上、下、左、右、前、后六个方向吃到(n,n,n)。但果冻毕竟是有许多口味的,标记为*的口味是Nancy不愿意吃的,其余的果冻均标记为.。Nancy不想吃坏肚子,于是她想尽可能少的吃果冻。下面给出果冻的情况,请你帮忙计算一下她能吃多少块果冻叭!输入描述:第一行:一个整数n。接下来n层,每组n行,每行n列,表示果冻(i,j,k)的情况(.

2022-04-26 21:56:19 90

原创 Dijkstra + 堆优化

L2-001 紧急救援 (25 分)作为一个城市的应急救援队伍的负责人,你有一张特殊的全国地图。在地图上显示有多个分散的城市和一些连接城市的快速道路。每个城市的救援队数量和每一条连接两个城市的快速道路长度都标在地图上。当其他城市有紧急求助电话给你的时候,你的任务是带领你的救援队尽快赶往事发地,同时,一路上召集尽可能多的救援队。输入格式:输入第一行给出44个正整数NN、MM、SS、DD,其中N(2≤N≤500)N(2≤N≤500)是城市的个数,顺便假设城市的编号为0∼(N−1)0∼(N...

2022-04-20 22:50:12 1205

原创 算法进阶21-23

21搜索:数和图的遍历:数和图最常见储存方式:使用一个邻接表保存边集。无向图中边可以看做是双向边,树可以看作具有N-1条边的无向图。边都存储在一个邻接表中,以head数组为表头,使用ver和edge数组分别存储边的终点和权值,使用next数组模拟链表指针。wolf:树和图的深度优先遍历,树的DFS序,深度和重心: 深度优先遍历,首先对于点x的多条分支,任意选一条边走下去,执行递归,直至回溯到点x后,再考虑其他的边。代码:void dfs(int x){ v[x] = 1;//记...

2022-04-16 22:57:21 384

原创 算法进阶-1-4

4二分法:整数集合上的二分:【l,r】区间内,mid为最后查找值,每次二分,归属左或右区间内部;(1).单调增序列里面查找>=x最小值;while(l < r){ int mid = (l + r) >> 1; if(a[mid] >= x) r = mid; else l = mid + 1;} return a[l];(2).单调增序列里面查找<=x最大值; while(...

2022-04-16 22:52:11 391

原创 堆的手写要点

插入一个数:heap[++size]=x; up(size)求集合中最小值heap[1]删除最小值heap[1]=heap[size];size--;down(1);删除任意一个元素heap[k]=heap[size];size--;down(k);up(k);修改任意元素heap[k]=x;down(k);up(k);向下调整操作void down(int u){ int t=u; if(2*u<=v&&h[t]

2022-03-25 15:28:40 270

原创 模拟堆-wolf

思路三个函数一个是数和节点的对应,交换节点,那么对应的数据结构所存储的数就要改变并且涉及到交换了的节点其指针指向也要改变 一个是上移节点对应的函数 还有一个下移节点对应的函数#include <iostream>#include <algorithm>#include <cstring>using namespace std;const int N = 1e5 + 10;int hp[N], ph[N];int h[N];int..

2022-03-25 15:25:40 1529

原创 训练赛小题

AquaMoon hadnnstrings of lengthmmeach.nnis anoddnumber.When AquaMoon was gone, Cirno tried to pair thesennstrings together. After making\frac{n-1}{2}2n−1​pairs, she found out that there was exactly one string without the pair!In her rage, s...

2022-03-12 10:47:23 95

原创 Weird Sum

标准输出埃戈尔有一张大小的桌子n×mn×m,行号从11到nn以及编号为11到mm。每个单元格都有一个颜色,该颜色可以表示为11到105105.让我们表示位于rr-第四行和cc-第四栏(r,c)(r,c)。我们定义曼哈顿距离两个细胞之间(r1,c1)(r1,c1)和(r2,c2)(r2,c2)作为它们之间最短路径的长度,路径中的每个连续单元必须有一个共同的边。路径可以通过任何颜色的单元格。例如,在表中3×43×4曼哈顿之间的距离(1,2)(1,2)和(3,3)(3,3)是33,最短的路径之一是:(..

2022-03-08 01:15:00 496

原创 一 字符串处理

1 .1字典树优点:利用字符串公共前缀来减少查询时间,最大限度减少无谓字符串的比较算法思路(1)字典树creat ;将所有的字符串插入字典树中(可以采用数组和链表储存)算法代码void insert(string s){//将字符串s擦汗如字典树中//int len = s.length(),p =1; for(int i= 0;i<len ;i++) { int ch = s[i]-'a';//转换为数字 i

2022-02-23 17:03:26 90

原创 二分搜索法

算法设计思路(1)初始化。令 low = 0;指向有序S【】第一个元素;high = n - 1,指向有序数组S【】的最后一个元素。(2) low<=high是否成立(3)middle = (low+high)/2;(4)x与S[middle]的关系若x>S[midldle],则low = middle +1;否则令 high = middle - 1;转向2算法实现(1)非递归算法int BinarySearch(int s【】,int n,in

2022-02-21 22:22:22 97

原创 图论1.2

1.2边集数组存储每条边的起点和终点;若是网,增加一个权域值;网的边集数组数据结构struct Edge{int u;int v;int w;}e[N*N];求解最小生成树 kruskal算法按权值进行排序,使用边集数组更方便图的算法时间复杂度​树与图的遍历时间复杂度 O(n+m)O(n+m), nn 表示点数,mm 表示边数(1) 深度优先遍历 int dfs(int u){ st[u] = true; // st[u] 表示点u已经.

2022-02-21 21:43:35 114

原创 图论基础1.1

基础二元数组 G = <v,e>v 表示 节点数 , e 表示 边数有向图和无向图结点的度:与该节点有关的边数 TD( v)握手定理有向图中的度 包括 入度和出度;入度:以v为终点的有向边1图的储存邻接矩阵的算法分析 ;(1)输入节点和边数;(2)依次输入节点信息,存储到Vex【】中;(3)初始化邻接矩阵;(4)依次输入每条边附着的两个节点;如果是网,还需要输入该边的权值;算法代码viod CreatAAMGraph(A..

2022-02-20 22:34:42 161

原创 数论-筛素数

普通筛法int get_primes(int n ){ for(int i = 2; i <= n ; i ++ ) { if(!st[i]) //如果是质数 { primes[cnt ++] = i; } for(int j = i * 2 ; j <= n ; j += i) st[j] = true; //不管当前i是合数还是质数,都用来筛掉后面它的倍数 }}埃式

2022-02-14 09:42:36 444

原创 背包 问题DP

#include <iostream>#include <stdio.h>#include <string.h>#include <math.h>#include <algorithm>using namespace std;int main(){ int s[1010],dp[1010],h[1010]; int n,v,a,b; while(scanf("%d %d",&n,&...

2022-02-11 12:58:18 427

转载 高精度算法

A加法高精度减法 —— 模板题 AcWing 792. 高精度减法// C = A - B, 满足A >= B, A >= 0, B >= 0vector<int> sub(vector<int> &A, vector<int> &B){ vector<int> C; for (int i = 0, t = 0; i < A.size(); i ++ ) { t =

2022-02-01 16:13:09 37

原创 矩阵距离

题目描述原文理解曼哈顿距离 投影到坐标轴长度的和、 红色的线为曼哈顿距离题解#include <cstring>#include <iostream>#define x first#def...

2022-01-26 17:36:24 385

原创 哈尔滨理工大学21级新生程序设计竞赛E

#include <stdio.h>int main(){ int n,i,a[30],d,t,h,g; while(scanf("%d",&n)!=EOF){ if(n%2!=0) { printf("-1"); break;} for(i=1;i<30;i++){ a[i]=n%2; n=n/2; h=n*2+a[i];...

2021-12-15 18:17:16 3704

原创 哈尔滨理工大学21级新生程序设计竞赛D

#include<stdio.h>int main(){ int n,l,r,i,j,k; int max=0; scanf("%d %d %d",&n,&l,&r); k=n; for(i=0;i+l<=r;i++) { j=(i+l)%n; if(j>max) { max=j; } if(i...

2021-12-15 18:14:25 3295

原创 哈尔滨理工大学21级新生程序设计竞赛C

#include<stdio.h>int main(){ long long int n; scanf("%lld",&n); if(n%4==0) printf("bob"); else printf("kiki"); return 0;}

2021-12-15 18:11:17 63

原创 哈尔滨理工大学21级新生程序设计竞赛B

#include<stdio.h>int main(){ long long int n,m,a,b; scanf("%lld %lld",&n,&m); if( 5 * n >= m) { a = m/5; b = m%5; } else { a = n; b = m-5*n; } printf("%d %d",a,b); ...

2021-12-15 18:08:52 458

原创 哈尔滨理工大学21级新生程序设计竞赛A

#include<stdio.h>int main(){ int n; scanf("%d",&n); if(n==1) printf("You were studying Higher mathematics!"); if(n==2) printf("You were studying Linear algebra!"); if(n==3) printf("You were stud...

2021-12-15 18:07:49 608

原创 字符串中删去数字

#include<stdio.h>#include<string.h>int main() { int i,j,a; char s[80];/*1定义一个数组*/ gets(s); a=strlen(s);/*2表明数组的长度*/ s[a+1]='\0'; /*3表明 最后的空位置*/ for(i=0; s[i]!='\0'; i++)/*4如果数组中数字不为零,那么,从第一个字符开始,依次读取,读到最后一个空字符截止*/ {.

2021-11-29 19:28:09 1393

原创 蓝2020-填空题1

/*类似某个数字区间中包含的某个数字出现的个数*/ #include<stdio.h>#include<stdbool.h>/*头文件可以省略 ,布尔代数可以替换成整形变量 */ int ans=0;int judge(int n)/*布尔代数可以被定义,bool=int*/ {while(n){ if(n % 10 == 2) return 1; n/=10;} return 0;}int main(){ for(int i = 1; i &lt.

2021-11-26 18:56:51 408

原创 蓝2020-1

#include<stdio.h>int main(){ int res=0,i; for(i=2;i<=2020;i++) { int t=i; while(t) { if(t%10==2) res++; t/=10; } } printf("%d",res); return 0;}

2021-11-25 20:29:08 124

原创 蓝2012-3

#include<stdio.h>int main(){ int a,b,c,d;/*a的倒数+b的倒数+ c的倒数+d的倒数=1*/ for(int a=20;a>=1;a--)/*从实例入手,给的20,5,4,2,0*/ { for(int b=a-1;b>=1;b--) { for(int c=b-1;c>=1;c--) { ...

2021-11-25 19:54:18 142

原创 蓝2012-2

#include <stdio.h>int main(){int a,b,c,d,e;for (a=0;a<10;a++){for (b=0;b<10;b++){if (b==a) continue;for (c=0;c<10;c++){if (c==b || c==a) continue;for (d=0;d<10;d++){ if (d==c || d==b || d==a ) continue; .

2021-11-25 19:32:42 48

原创 蓝2012-1

#include<stdio.h>int main(){ long long int x = 10,y = 89; for(int i = 0; i < 120; i++) { if(i%2 == 1) { y-=x; } if(i%6 == 0) { x*=2; } if(i%4 == 0) { y*=2; } } printf("x=%d\ny=%d",x,y); return 0;}

2021-11-25 18:45:08 175

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除