自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C#基础面试题集

值类型存储在栈中,引用类型存储在堆中。值类型存储快,引用类型存储慢。值类型表示实际数据,引用类型表示指向在内存堆中的指针和引用。值类型在栈中可以自动释放,引用类型在堆中需要GC来释放。

2023-12-09 21:50:32 387

原创 【鬼鬼鬼iiARPG开发记录】

lalala。

2023-11-25 12:16:53 120

原创 Codeforces Round #582 div3 G 带权并查集

CodeforcesRound#582div3G带权并查集。

2022-08-01 17:28:51 152 1

原创 Codeforces Round #809 div2 CD

代码】CodeforcesRound#809div2CD。

2022-07-19 19:04:04 132

原创 Codeforces Round #808 div2 ABCD

否则说明我们的智商不足以将所有考试参加完,但是假如我们不参加这次考试,我们就拥有更高的智商,这无疑对于后面的考试是有益的,也不会造成智商的浪费问题。举一个例子你的智商为1,你将要面对的考试是21111,如果你因为头铁干掉了第一场考试,你就会因为过于弱智痛失剩下的所有考试。,显然最坏的情况是i~n的考试数量,每场考试分配一点智商,但是我们发现如果==a[i]......

2022-07-17 11:48:50 229

原创 Codeforces Round #807 div2 CD

现有一个字符串,执行若干copy操作将copy到的字符添加到末尾。进行q次询问,每次询问需要回答最终结果串s的某个位置的字符。找下标,然后再通过下标输出从最后一段一直往前模拟递推字符在启示串中的位置即可递归。...

2022-07-16 12:14:49 133

原创 Codeforces round #805 div3 D

题目链接

2022-07-12 10:33:07 82

原创 Codeforces round #804(Div2)CD

比如上图,无论我的5放到了哪里,都不会影响这个区间 [L,R]是否全部出现。

2022-07-05 15:07:24 216

原创 枚举模拟递推

汉诺塔题目描述汉诺塔问题,条件如下:这里有A、B、C和D四座塔。这里有n个圆盘,n的数量是恒定的。每个圆盘的尺寸都不相同。所有的圆盘在开始时都堆叠在塔A上,且圆盘尺寸从塔顶到塔底逐渐增大。我们需要将所有的圆盘都从塔A转移到塔D上。请你求出将所有圆盘从塔A移动到塔D,所需的最小移动次数是多少。汉诺塔塔参考模型输入格式没有输入输出格式对于每一个整数n(1≤n≤12),输出一个满足条件的最小移动次数,每个结果占一行。我们首先以三个盘的汉诺塔问题为基础。设d[n]表示求解n盘3塔问题

2022-05-05 21:45:09 71

原创 位运算--二进制

最短Hamilton路径状压dp+二进制题目描述给定一张 n(n \leq 20)(n≤20) 个点的带权无向图,点从0 \sim n-10∼n−1标号,求起点 0 到终点 n-1 的最短Hamilton路径。 Hamilton路径的定义是从 0 到 n-1 不重不漏地经过每个点恰好一次。输入描述:第一行一个整数n。接下来n行每行n个整数,其中第i行第j个整数表示点i到j的距离(一个不超过10^7107的正整数,记为a[i,j])。对于任意的x,y,z,数据保证 a[x,x]=0,a[

2022-05-03 21:55:39 149

原创 2022年十三届蓝桥杯B组题解(全)

十三届蓝桥杯省赛C++B组 真题题解A.九进制转十进制B.顺子日期C.刷题统计题目描述输出格式输入样例输出样例D.修剪灌木题目描述输入格式输出格式输入样例输出样例E.X进制减法题目描述输入格式输出格式输入样例输出样例数据范围与提示F.统计子矩阵题目描述输出格式输入样例输出样例数据范围与提示G.积木画题目描述输入格式输出格式输入样例输出样例H.扫雷题目描述输入格式输出格式输入样例输出样例数据范围与提示I.李白打酒加强版题目描述输入格式输出格式输入样例输出样例数据范围与提示J.砍竹子题目描述输出格式输入样例输出

2022-05-02 15:04:29 7072 5

原创 天梯 L2

L2-001 紧急救援 Dijkstra#include<cstdio>#include<algorithm>using namespace std;int n,m,c1,c2;int dis[510],weight[510],e[510][510],num[510],w[510],pre[510];//最短路径长度,救援队数量,两城市之间的路的长度,用来更新最短路径数量的数组,用来更新最多救援队数量的数组,记录前驱的数组bool visit[510];const i

2022-04-19 21:49:11 178

原创 第45届国际大学生程序设计竞赛(ICPC)亚洲区域赛(上海)DM

D Walker#include<bits/stdc++.h>using namespace std;/*double get_dis(double pos,double v,double n){ double a=(pos+n)/v; double b=(n-pos+n)/v; return min(a,b);}*/int main(){ int t; cin>>t; while(t--){ doub

2022-04-14 22:04:24 384

原创 Educational Codeforces Round 123 div2

C Increase Subarray Sums题意tn,xa[],a[],a[]…给你一个数列,要你求在不同取值不同的k的条件下,(k的意思就是你能加k个x,但没规定一定要把这些x全部加上) 和最大的连续子序列的和(这里的子序列没有规定长度)。(k的取值是0到n)思路用差分数组计算不同截取长度的和最大的连续子序列的和,针对“k的意思就是你能加k个x,但没规定一定要把这些x全部加上”这个问题,我们直接扫描不同截取长度的连续子序列的和最大值(这里解决中间参杂负数不知道取哪里、取多长造就和最大

2022-02-23 21:12:20 81

原创 快速排序(二刷一下)

快速排序#include<iostream>using namespace std;const int N=1e6+10;int n;int q[N];void quick_sort(int q[],int l,int r){ if(l>=r)return; int i=l-1,j=r+1,x=q[l+r>>1];//确定分界点 while(i<j) { do i++;while(q[i]<x);//调

2022-01-22 22:11:48 294

原创 牛客月赛 40补题

比赛链接A 数字游戏题意二进制中有奇数个1,最后一位 0变1 或 1变0偶数个1,最高位1变0问:几次能全部变成0?思路首先分成两大部分,奇数个1 和 偶数个1然后在此基础上再分尾数是1和0的情况,所以就有4种情况讨论,通过模拟小的样例得规律!!!知识点二进制数末尾为1,便为奇数,末尾为0,则为偶数n&1判断奇偶,偶数为0,奇数为1n>>i可以取n的二进制的末尾第i个数,如n=4,100,n>>3=1#include<bits/std

2021-11-16 22:51:31 815

原创 Codeforces Round#674div.3 CDEF

C题目题目链接刚开始给你一个数组为[1],。你每次可以有如下两种操作:(1) 从数组中选择任意一个数字,并分裂成两个一模一样的数。(2) 从数组中选择一个数加1。例如,现在你有五次操作的机会。第一次,把第一个数分裂,变成[1,1]。第二次,把第一数加1操作,[2,1]。第三次,把第二个数分裂,[2,1,1]。第四次,把第一个数分裂,[2,1,1,2]。第五次,把第四个数加1,[2,1,1,3]。五次后数组元素总和为2+1+1+3 = 7.你的任务是消耗最少的次数使得数组的总和大于等

2021-10-27 21:03:35 114

原创 2021-10-19

K题目链接欢欢一直在研究狂热的编程问题。然而,今天他决定让自己休息一下,去一个美丽的国家旅行。因此,出现了另一个问题。全国共有n个城市。有m 条双向道路,每条道路都直接连接两个不同的城市。由于该国拥有稳固的交通系统,因此每两个城市之间总会有一条路径连接。欢欢到了S市,想把尽可能多的物品运到T市。每天他都会走过一条路。每经过一条路,都要付出一定的代价。根据政策,费用取决于您携带的物品数量和您进入该国的天数。更准确地说,每条道路的费用是k d,其中k 是黄欢要携带的物品数量,d 是他入境的天数。例如,

2021-10-19 22:01:50 89

原创 codeforces round#747div2

A题目链接题意给出n,要你找出L,R,满足L+(L+1)+······+(R-1)+R=n.思路直接-n+1, n,因为-n+1到n-1的和抵消了为0,只剩下了n(注意观察样例)#include<bits/stdc++.h>using namespace std;int main(){ long long t,n; cin>>t; while(t--) { cin>>n; cout&lt

2021-10-13 20:51:56 84

原创 codeforces global round 1

C.meaningless operation题目链接题意思路#include<bits/stdc++.h>using namespace std;typedef long long ll;int q;ll a;ll p[30]; ll print(ll x){ for(ll i=3;i*i<=x;i++) { if(x%i==0)return x/i; } return 1;} int main(){

2021-09-18 21:43:46 105

原创 codeforces#742 div2BC

B题目链接题意a为数组中最小的未出现的非负整数,b为整个数组的异或和,问满足条件的数组的最小长度ans是多少思路首先可以知道ans>=a,不妨设0~a-1的异或和,接下来分3种情况讨论:1是c=b,则ans=a2是c!=b,则我们要让c异或上某个值d得到b,如果d不是a的话,我们直接把d添加进数组就OK,3否则,就要用另外两个值异或一下得到a再去和c异或得到b,因为a不能出现在数组中,这种情况就是ans=a+2.^的知识点^异或,exclusive OR,xor(同为0,异为1)

2021-09-18 16:30:44 93

原创 codeforces1066C

codeforces1066C题目链接在一个神奇的地方有一座神奇的火车站,它只有一条铁轨,可是它却会有从两个方向到来的火车…现在给你t个操作或询问,操作或询问可能的情况有以下几种:1.? num ——询问至少需要从火车站驶出多少列火车才能让编号num的火车顺利离开火车站2.L num——有一列编号为num的火车从左侧驶入火车站,并停留在火车站中3.R num——有一列编号为num的火车从右侧驶入火车站,并停留在火车站中现在需要你针对每一次第一种询问输出结果。Input第一行包含了一个数字t

2021-08-26 16:30:24 139

原创 codeforces #538div2

B题目链接小红是一个程序媛,她和一般程序员不同的地方是,小红有艺术爱好,她喜欢种花。她种了一些盆栽,每盆盆栽的花瓣数量不同,因为小红是一个爱思考的程序员,她的头发比较少,所以她喜欢花瓣多的花。在一堆盆栽里面,花瓣数最多的前m盆盆栽被定义为漂亮的花。例如:当m=2时,有4盆花花瓣数为:10 20 5 15,那么漂亮的花是第2和4盆她现在要把这n盆盆栽搬到k个房间,请问小红要怎么搬这些花,才能使得漂亮的花的花瓣数总和最大?搬花的时候花的顺序不能改变。当有多种情况符合时,输出任意一种Input第一行

2021-08-17 12:03:42 106

原创 codeforce#738 div2

B正解#include<bitsdc++.h>using namespace std;const int N =110;int T;int n,m,k;int main(){ cin>>T; while(T--) { char s[N]; cin>>n; for(int i=1;i<=n;i++) cin>>s[i]; int pos=n+1;

2021-08-16 11:42:32 144

原创 树状数组 单点修改&区间查询

树状数组 1 :单点修改,区间查询#include <bits/stdc++.h>using namespace std;const int N = 1e6 + 10;typedef long long ll;struct BIT { ll sum[N]; inline int lowbit(int x) { return x & (-x); } void add(int x, int val) { whi

2021-08-14 17:30:07 192

原创 高斯消元解线性方程组

高斯消元解线性方程组输入一个包含 n 个方程 n 个未知数的线性方程组。方程组中的系数为实数。求解这个方程组。下图为一个包含 m 个方程 n 个未知数的线性方程组示例:输入格式第一行包含整数 n。接下来 n 行,每行包含 n+1 个实数,表示一个方程的 n 个系数以及等号右侧的常数。输出格式如果给定线性方程组存在唯一解,则输出共 n 行,其中第 i 行输出第 i 个未知数的解,结果保留两位小数。如果给定线性方程组存在无数解,则输出 Infinite group solutions。如

2021-08-13 20:34:12 125

原创 扩展中国剩余定理

扩展中国剩余定理给定 2n 个整数 a1,a2,…,an 和 m1,m2,…,mn,求一个最小的非负整数 x,满足 ∀i∈[1,n],x≡mi(mod ai)。输入格式第 1 行包含整数 n。第 2…n+1 行:每 i+1 行包含两个整数 ai 和 mi,数之间用空格隔开。输出格式输出最小非负整数 x,如果 x 不存在,则输出 −1。如果存在 x,则数据保证 x 一定在 64 位整数范围内。数据范围1≤ai≤231−1,0≤mi<ai1≤n≤25输入样例:28 711 9

2021-08-11 21:42:30 143

原创 codeforces 158B

codeforces 158B题目链接题意给很多队人,每一队人有不同的人数,用一辆出租车将他们全部送走。题目要求求最小的出租车的数量,因为一辆出租车只能载4个人,所以要找出最优的方案来解决这个问题思路用数学、桶来做,或贪心如果用贪心的话,先不管别的,首先对数据数组排序,· 将排序后的数组最大的和最小的加在一起,如果值<=4,则下一次不用考虑最大和最小的队伍,载人次数+1· 因为此时车还没载满,所以根据贪心原则,还要看看能不能再载一队,这时再加上最末尾的最小的人数,载人次数不变· 如果

2021-07-25 11:32:42 130

原创 周赛#10

A题目链接题意思路#include<bits/stdc++.h>#define ll long longusing namespace std;const int maxn=1e5+3;int main(){ int t; scanf("%d",&t); while(t--) { string x; cin>>x; int t=-1; for(int i=0;i

2021-07-19 23:59:42 75

原创 codeforces div2#703AB

codeforces div2#703ABA题目链接题意给你n堆积木,第i个堆有hi个块,其高度就是其中的块数。在一次移动中,你可以选择从第i个堆里取出1块,加到i+1个堆里,问你可不可以让高度的顺序严格递增。思路用两个前缀和sum和need,sum用来记录所有块的数量,need从0开始,后面元素依次+1的总和(把每堆多余的统计起来,加到最后,也可实现递增),就只用比较sum和need的大小了,sum<need,就代表没有足够多的积木用来实现递增#include<bits/stdc

2021-07-19 17:28:55 116

原创 codeforces div2#701AB

codeforces div2#701A题目链接题意给你两个数a,b;可以进行如下两个操作:1)a=a/b;2)b=b+1;要求用最小的操作次数使a=0;思路除非b=1,否则a最多30多步就可以到0,那么b操作最多进行30多次。2的10次方=1024。而且肯定越早加越好,那么枚举b的次数算出总次数取最小值即可#include<iostream>#include<cstdio>using namespace std;int T,A,B;int main()

2021-07-19 15:54:04 82

原创 codeforces div2#700AB

700ABA题目链接题意A和B同时操作一个字符串S,将某个位置的字符改变,且不能和原来的字符相同,A要让字符串字典序变小,B则相反,A先操作。两个人都同时选择最优情况,每个位置只能被操作一次,求操作后的字符串思路还算简单,A把字符改成a,如果本身就是a,就改成b。B把字符改成z,同样的,如果本身就是z,就改成y。我不理解的是为啥i从1开始循环的时候,就过不了?把i改成从0开始就过了,这是为啥啊???#include<iostream>#include<cstdio>

2021-07-18 12:15:23 76

原创 codeforces div2#699AB

codeforces div2#699ABA题目链接题意思路题意十分简单,但我倔强地要用map来写,感谢w大佬给我找出了好多bug,一是s.length()显示长度的函数,我原本写的是sizeof(),结果这是变量字节的大小,哭笑,不看书真的不行,我现在很多东西都是模仿别人过来的,但知其一不知其二者多矣。二是sum判负数的情况,负数对应的也是真,只有0才是假。三是漏了两种情况,分别是横竖坐标只有一个到了,另一个没到,flag=1,还是不满足的情况。#include<iostream&gt

2021-07-17 10:02:40 89

原创 codeforces div2#698AB

codeforces div2#698ABA题目链接题意给你一串升序的数字,给数字上色,要求去掉某个颜色之外的所有数,该颜色的数,呈严格递增,也就是不能相等,且要递增。所以相等的数字不能涂一样的颜色比如下例,去掉红之外的颜色,红色的数字依旧呈升序1 1 1 2 3 4红黄绿红红红思路直接上map,然后找到map最大值#include<iostream>#include<cstdio>#include<algorithm>#include&l

2021-07-16 11:30:19 86

原创 codeforces div2#696AB

codeforces div2 #696ABA题目链接题意给定一个01字符串a,然后要找到一个同长度的01串b,再把a,b加起来,得到串d,如0110+1101=1211,然后相同的数字会合并成一个数,1211->121,求出这个串b,使得串d最大。思路贪心。首先能加1的位置肯定先加1,那么考虑什么情况下加1会使d变小呢,那就是a[i]+b[i]等于上一位pre的数,会发生合并,那么这位数就浪费了。第一位肯定是加1的,然后用pre上一位,遍历到i的时候,如果+1会是得和前面的数pre相等,

2021-07-15 17:55:23 79

原创 山谷与山峰 div2 #695B

codeforces div2 #695B题意给你一列高高低低的数字,改变其中的一个数字,使得这一列中山峰+山谷的数目最小思路先找到最开始的山谷、山峰的总数量,然后从1~n-1位一个数字一个数字改变,要变成拥有最小山谷、山峰数,就是把中间的海拔改成和左边或右边的海拔一样高,这样一来就直接消灭了中间多次山谷、山峰的可能。1、变成左边的数字,求出这时数目的最小的2、变成右边的数字,求出这时候数目最小的,不断往后遍历求出,得到最后的结果题目链接#include<bits/stdc++.h&g

2021-07-15 16:27:24 118

原创 高精度加减乘除

高精度加法#include<iostream>#include<vector>using namespace std;const int N=1e6+10;//C=A+Bvector<int>add(vector<int>&A,vector<int>&B)//引用{ vector<int>C;//数组C int t=0;//进位 for(int i=0;i<A.size()|

2021-07-14 17:01:24 85

原创 二进制矩阵

二进制矩阵题目链接思路根据y总的结论,任意一个数为1时,我们都可以通过三次操作在不影响其他点的情况下,将其转换为0,即如图所示的方法:而操作数的限制为 3nm3nm, 所以就算把每一个点都进行三次操作都是满足这个限制的显然第一问的答案输出给定矩阵中1的个数乘以3即可。#include <iostream>#include<algorithm>#include<cstring>using namespace std;const int N = 11

2021-07-13 11:58:04 1614

原创 归并排序 分治递归

归并排序主要用了分治与递归的思想,前期划分,后期合并,话不多说,上代码#include<stdio.h>#include<stdlib.h>//分配内存void print_arr(int arr[],int n)//辅助函数,打印数组{ for(int i=0;i<n;i++) printf("%d",arr[i]); putchar('\n');}//合并void merge(int arr[],int tempArr[].

2021-07-10 16:09:58 143

原创 2021-07-09 周测#7

20级训练赛Round#7CodeForces 4c常规思路以下是用map的做法,雀氏简洁明了补充POJ 2533CodeForces 1077CCodeForces 4clink常规思路#include<bits/stdc++.h>using namespace std;struct node{ string n; int num;};node a[100005];//用来存放名称字符串int main(){ int n,b=0; cin>>n

2021-07-09 17:29:30 127

空空如也

空空如也

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

TA关注的人

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