自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 spfa算法

#include<iostream> #include<algorithm> #include<limits> #include<queue> #include<stack> #include<vector> #include<math.h> #include<string> #include<stdio.h> #include<string.h> #include<cmath&gt

2022-01-20 10:27:10 282

原创 codeforces-round-714-(B到D) 题解

B-AND Sequences 题意: 给一个非负数组A,数组元素数量为n,数组下标从1到n, 在这个数组元素的全排列中,如果有一种排列满足下标i从 1到n都能满足: 那么这种排列就满足我们美的要求。 最后的问题是有多少种这种排列。 思路: 这里的& 是位与运算,即设a=1,b=3 则 a&b等价于 01 11 &=>01 位运算有一个很有意思的地方,那就是如果a参与了位与运算,那么最后的结果一定是小于等于a的, 换句话说,位与运算只能使一个数变小,或不变(参与运算的另一个数全

2021-04-17 14:45:18 117

原创 CodeForces-Round-704-D-Genius Gambit 题解

题意:给你三个整数a,b,k。找到两个满足一下条件的二进制数,x,y: 1 这两个二进制数每个都含有a个0和b个1. 2 x-y有且仅有k位1(只含1不含0) 限定条件,x和y都不能以0开头。 如果这两个二进制数存在,则输出Yes并输出这两个二进制数,否则输出No 思路:一开始想的是暴力搜索有多少种字符串,然后暴力求答案. 然后看官网题解,发现了一个很巧妙的构造方法: 以4 2 3 为例,k=3,则x-y的结果含且只含三位1,那么我们想,到底怎样两个二进制数相减,可以得到这种只含1的数呢? 观

2021-03-08 21:47:00 134

原创 CodeForces-Round-705C-K-beautiful Strings题解

题意:一个字符串是k美的定义:字符串中不同字符出现的总次数能整除k 现在给你一个n,k,和一个字符串,n为字符串的长度,让你求一个字符串满足k美的定义并且这个字符串的字典需要尽可能的小(前提是大于等于原字符串) 并且长度和原串长度相同,如果答案字符串不存在,输出-1. 思路: 1:因为要求的字符串要尽可能的小,还必须大于等于原串,那么我们可能的最优解就是原串本身满足k美,直接输出原串。 2:如果一个串满足k美,那么说明串的长度是由一组k的倍数组成的(如k=2,n=8,n=2+4+2),所以如果n不

2021-03-08 14:39:19 596 5

原创 POJ - 1458 题解

题意:给你两个字符串,让你求出两个字符串中最长的相同子序列 思路:这道题是经典的最长相同子序列的题目,可以用动态规划来做 首先定义一个二维数组dp[i][j],并且我们规定,dp[i][j]存的值的意义是字符串a从0到i与字符串b从0到j的最长的公共子序列 那么对于每一个dp[i][j],它的值只能来自一下几种情况: 1 当a[i]==b[j]时,此时dp[i][j]=dp[i-1][j-1]+1,不懂可以仔细想想dp数组的定义 2如果a[i]!=b[j]那么dp[i][j]的值为dp[i-1][

2021-03-06 16:31:32 186

原创 POJ-2484-A Funny Game -题解

#题意:给你n个围成一圈的硬币,每次只能取一个或相邻的两个硬币,(取完一个硬币后,保持其他硬币位置不变,即会出现有硬币不相邻的情况) 问你假设先手取的人和后手取的人都采取最优策略,问谁能赢? 先手赢输出 Alice,后手赢输出Bob 思路: 先将n<=4特判,然后依照n的奇偶性来判断 首先考虑比较简单,当n为偶数时: 因为n是偶数,所以整个硬笔圈是对称的,那么无论你先手怎么取,我后手都可以对称的取和你一样的硬币, 这样可以保证每次我都能在你取完后我还能取,这样后手必赢。 再考虑当n为奇数的情

2021-03-06 11:04:48 186

原创 HDU-1029题解

题意很简单,给你一堆数字,让你找出这堆数字中相同次数大于 (n+1)/2的 思路: 一开始想的是map,后来发现还有更省时间和空间的做法: long long a;int b; while (scanf("%d", &n) != EOF) { int num,count; count=0; for (int i = 0; i < n; i++) { scanf("%lld", &a);

2021-02-27 12:34:20 178

原创 POJ-1556题解(附带计算几何模板)

##题意: 现在给你一个卧室的平面图,卧室里有0到18堵墙(垂直于x轴的) 固定起点(0,5),终点(10,5) 在不经过墙的情况下,要求你求出起点到终点的最短路线 ##思考: 首先题目很好理解,即在不撞到墙的情况下从求起点到终点的最短路线 首先可以知道,两点之间直线最短, 所以最优路线要么是一条直线(起点终点之间没有墙阻挡) 要么就是经过某些墙的端点的线段拼接而成(为什么是端点?加入线段不经过端点,比如说从两墙之间的空 白穿过,那么线段总可以向上或向下倾斜到墙的端点处,从而长度更小) 可以这样想,线段的

2021-02-27 12:30:09 193

原创 HDU-1176

#include <iostream> #include <cstdio> #include <string.h> #include <cmath> using namespace std; long long dp[100050][15]; int pies[100050][15]; int n; void solve() { // for(int i=n;i>=0;) } /* 1 5 1 4 1 6 1 7 2 7 2 8 3 0 */...

2021-02-27 12:23:18 122

空空如也

空空如也

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

TA关注的人

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