自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 博弈

现在遇到·的有两种做法1.从1往后一个一个判断,总结规律例:Good Luck in CET-4 Everybody!题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1847题解:从1到9,发现3,6,9第二个人赢。于是发现当n%3==0的时候,第二个人赢。事后总结发现,不能留给对面可以取完的数,所以要对3取余数代码:#include<iostream>#include<algorithm>#include<cstd

2020-09-30 22:22:29 277

原创 C组group4:B - Sequential Nim

题目链接:https://vjudge.net/contest/397850#problem/B题解:简单博弈题,后手赢,无论是否为1,都会交换先后手,但当输入大于1的时候,后手赢。所以谁是后手,谁赢代码:#include<iostream>#include<cstring>#include<string>#include<cstdio>#include<algorithm>#define maxn 100100typedef

2020-09-30 21:32:00 103

转载 map的用法

https://blog.csdn.net/sevenjoin/article/details/819438641,map简介map是STL的一个关联容器,它提供一对一的hash。第一个可以称为关键字(key),每个关键字只能在map中出现一次;第二个可能称为该关键字的值(value);map以模板(泛型)方式实现,可以存储任意类型的数据,包括使用者自定义的数据类型。Map主要用于资料一对一映射(one-to-one)的情況,map內部的实现自建一颗红黑树,这颗树具有对数据自动排序的功能。在map

2020-09-28 20:20:18 1730 1

转载 set

原文链接:https://blog.csdn.net/yas12345678/article/details/52601454begin()    ,返回set容器的第一个元素end()      ,返回set容器的最后一个元素clear()    ,删除set容器中的所有的元素empty()    ,判断set容器是否为空max_size()   ,返回set容器可能包含的元素最大个数size()      ,返回当前set容器中的元素个数rbegin     ,返回的值

2020-09-28 20:16:58 94

转载 vector<>用法

转载:https://blog.csdn.net/qq_36386435/article/details/82379261

2020-09-28 19:56:34 446

原创 二分模板

一、查找某个数(1<=i<=n)代码:int erfen(int k)//假设数组是递增数组,精确查找是否存在k,下标在(0<=i<n)范围里{ int left=0,right=n; while(left<right) { int mid=(left+right)/2; if(a[mid]<k) { left=mid+1; } else

2020-09-28 19:30:29 65

原创 B组group1:M - Maratona Brasileira de Popcorn

题目链接:https://vjudge.net/contest/397282#problem/M题解:这个题的意思时:c个人比赛吃东西,吃的东西必须满足两个条件:1.一个人吃的东西必须相邻2.每个地方的东西必须一个人全吃完求最小的时间这个题其实就是判断:把一段连续的数切c份,判断最大值最小是多少。对于这种求最小值得问题来说,可以二分总的大小来判断代码:#include<iostream>#include<algorithm>#include<string&g

2020-09-28 16:46:37 112

原创 B组group1:A - Artwork

题目链接:https://vjudge.net/contest/397282#problem/A题解:一个人能否从左下角到达右上角,而不经过圆形连接的区域。算法是储存左下角的点,逐个判断与他相邻的点,如果能4够到达右上角,那么该人到达不了右上角,注意每次路径都需要重置。代码:#include<iostream>#include<algorithm>#include<cstdio>#include<cstring>using namespace

2020-09-27 21:21:59 993

原创 B组group1:H - Hour for a Run

题目链接:https://vjudge.net/contest/397282#problem/H题意:水题,给定总长度,判断他的1/10,2/10……9/10是多少。(不能小于这个值)代码:#include<iostream>#include<algorithm>#include<cstring>#include<cstdio>using namespace std;int main(){ int n;//圈数个数 int k

2020-09-27 19:45:17 97

原创 B组group1:B - Buffoon

题目链接:https://vjudge.net/contest/397282#problem/B题解:水题,判断是否输入的数比第一个数大代码:#include<iostream>#include<algorithm>#include<cstring>#include<cstdio>using namespace std;int main(){ int n;//个数 int maxn,fl=0;//最大值,标志量 int

2020-09-27 19:34:49 181

原创 C组 group3:D - Grid-00100

题目链接:https://vjudge.net/contest/397104#problem/D题解:填一个01矩阵,满足sum和为k,且f(A)=(max®−min®)2+(max©−min©)2最小。这个题思路是尽可能让每一行,每一列的1的个数都相等,因此f(A)只存在两种情况,一种是每一行,每一列个数相等,那么的话f(A)即为0;当无法满足的时候max减去min也是1,所以f(A)即为2。现在考虑如何分布,因为均匀分布,所以每一行至少分布sum/n个。当无法整除时,前几行应该分布sum/n+1个

2020-09-27 19:04:03 68

原创 C组group3:C - A Cookie for You

题目链接:https://vjudge.net/contest/397104#problem/C题解:两类饼,两类人,一类人只吃多的,一类人只吃少的,判断会不会有人不够吃我们可以设两类饼为maxx,minn。当minn<只吃少的一类人数的时候,肯定不够吃。剩下的情况只吃少的够吃,我们发现当两类饼的个数相同时,如果饼的个数小于人的个数,那么不行,反之,可以。但这时候需要考虑能率能不能吃到一样多,即只吃多的那个人数是否大于等于maxx-minn,当满足这个条件就只需要判断maxx+minn与两类人

2020-09-27 16:56:34 65

原创 C组group3:B - Magical Calendar

题目链接:https://vjudge.net/contest/397104#problem/B题解:这个题意是日历有k天,判断当标记i天(1<=i<=r)时有多少种情况,每种情况需要满足以下两个条件:1.r天时连着的,不能断2.每一种情况不能通过平行移动变成其他种情况所以需要分两种情况跨行和不跨行。当跨行时,因为需要满足第一个条件,所以i必须大于r,并且此时有k种情况。当不跨行时,因为需要满足第二个条件,所以只有1种。然后循环累加即可。因为当i小于r时,是个等差数列,所以等差数列求和公

2020-09-27 16:45:10 108

原创 C组group3:A - Magical Sticks

题目链接:https://vjudge.net/contest/397104#problem/A题解:给定数字k,判断数字1,2,3,……,k。当经过两个数相加成另一个数,所得的数最多的个数。因为时是等差数列,当k为奇数时,因为会落下一个数,此处为最大的数,所以此处的和即为(n-1)/2+1,结果即为(n+1)/2当k为偶数时,当加和为中间的数相加时,个数最多。其实就相当于,如何从1加到100,是(1+100)*50,这样的话就是101的个数最多,那么个数即为(k)/2。所以答案为(n+1)/2。

2020-09-27 16:32:30 78

原创 C组group2 C - Game On Leaves

题目链接:https://vjudge.net/contest/396831#problem/C题解:给你一个连通无向图,可以选择去除某个点,与他相邻的边也会去掉。判断两个人如果选择最优算法的话,谁会赢。当x相邻的点的个数小于等于1时,直接先下的人会赢。当x相邻的点的个数大于1时初始的可以画为这样。最后会变成这个样子:当遇到这种情况时,谁先下谁输,所以只需要判断之前下的点的个数。即n-3个点的奇偶性。当为奇数时先下的赢;偶数时后下的赢代码:#include<iostream>#in

2020-09-27 16:20:01 111

原创 C组group2 A:Subsequence Hate

题目链接:https://vjudge.net/contest/396831#problem/B题解:判断经过多少步1变成0或者0变成1的转换可以不出现101,010这样的序列。即只出现全是0,或者全是1,或者一边全是0,一边全是1的序列。循环0的终点即可,然后在从开头循环到终点判断第一个数,从终点+1序列循环到字符串的终点判断第二个数需要变化的次数,然后综合四次取最小值即可。代码:#include<iostream>#include<string>#include&lt

2020-09-27 09:42:23 140

原创 C组group2 A - Odd Selection

题目链接:https://vjudge.net/contest/396831#problem/A题解:给定n个数,选定k个数,判定和是否能可以是偶数。开始想得是用dfs,但是tl了。后来发现偶数加对结果没有影响,所以只需要考虑奇数所能参与的范围,然后奇数是否可以是加偶数个,即和为偶数代码:#include<iostream>#include<string>#include<algorithm>using namespace std;#define max

2020-09-26 21:55:00 1214

原创 C组group1 C - Powered Addition

题目链接:https://vjudge.net/contest/396219#problem/C题解:判断一个数列通过加2的k次方变为非递减数列的最小操作数。多个项加减1次2的k次方算一次操作。一个项加减多个2的k次项算多次。这个地方只需要统计输入的最大值,与其后面的值的最大差值。最后计算可以经过多少次可以弥补这个差值。最后答案即为次数代码:#include<iostream>#include<string>#include<algorithm>#defin

2020-09-26 21:39:33 218

原创 C组group1 B - Sorted Adjacent Differences

题目链接:https://vjudge.net/contest/396219#problem/B题解:这个题是求出按两个数绝对值差递减进行排序,有一个误区,相等的不一定需要靠着,比如说5 -2 4 8 6 5,可以是5 4 5 6 -2 8,所以只需要排好序后,从中间开始,不断的向两边拓展,就会差值不断减小。代码:#include<iostream>#include<cstdio>#include<algorithm>#include<cmath&

2020-09-26 11:43:44 117

原创 C组group1 A. Filling Diamonds

题目:A. Filling Diamonds题目链接:https://codeforces.com/problemset/problem/1339/A题解:水题·:判断长度为n的区域能最多放多少个边不相邻的三角形,当每个都放正中间放的时候,个数最多。所以个数为n个代码:#include<iostream>#include<cstdio>#include<algorithm>using namespace std;int main(){ int t

2020-09-26 09:46:36 94

转载 6-1 带头结点的单链表就地逆置

链表的逆序参考链接:https://blog.csdn.net/qq_39871576/article/details/80613365?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2allfirst_rank_v2~rank_v25-4-80613365.nonecase&utm_term=%E9%93%BE%E8%A1%A8%E5%B0%B1%E5%9C%B0%E9%80%86%E7%BD%AE%E7%AE%97%

2020-09-21 19:46:38 528

原创 天梯刷题第四题: Fire! UVA - 11624

题目链接:https://vjudge.net/problem/UVA-11624#author=zmyhh题目解析:此题一言难尽啊, 首先因为最短路径,很容易判断是bfs题。但是需要注意以下几点:1.火和人不能在一个队列里,因为只能存放一个数对,所以需要不断地查找火,然后复杂度便成为了O(n的3次方),超时。解决方法是火放在一个队列,人放在一个队列,统计火到达该点的最短时间,然后又变成一个bfs题,最后比较火到达该点的时间和人到达该点的时间,如果人到达时间少,便可以加入队列。2.因为输入字符串的长度

2020-09-12 09:40:42 89

原创 天梯刷题第三题: Prime Ring Problem HDU - 1016

题目链接:https://vjudge.net/problem/HDU-1016题解:水题,典型的dfs题,判断相邻的两个数之和是否为质数代码:#include<iostream>#include<algorithm>#include<cstdio>#include<cstring>#include<string>using namespace std;int ans[30];//储存答案int n;//n的个数bool zh

2020-09-11 20:22:10 66

原创 天梯刷题2: Pots POJ - 3414

题目链接:https://vjudge.net/problem/POJ-3414题解:此题是判断几步之后最快能到达最终状态,典型的bfs。需要注意:1.开始的杯子是空的2.储存步骤的新方法:结构体定义string来储存步骤编号和序数,string数组来表达代码: #include<iostream>#include<algorithm>#include<cstring>#include<queue>#include<iomanip&gt

2020-09-11 19:49:41 112

原创 天梯赛刷题1:Prime Path

题目链接:https://vjudge.net/problem/POJ-3126题解:给两个数,判断如果只改变一个位数且只为素数的话,最少经过几步到达另一个数。如果无法到达,便输出imposs最短路径问题,可以用dfs来写,需要注意一个地方,不会仅存在只改变他们不同的位置,因此需要从1到9遍历。代码:#include<iostream>#include<algorithm>#include<string>#include<cstring>#in

2020-09-11 16:55:39 181

原创 刷题第十九题:Hangman Judge

题目链接:https://vjudge.net/problem/UVA-489#author=DaNao题解:需要注意如果猜对了的前提下,无论才多少次错的,都win算法是统计正确的字符串字符是否出现,并统计出现的个数,然后循环猜测的的字符串,如果正确,变为false,如果正确的个数等于出现的个数,那么就win,如果错误次数超过6次,则lose,其余情况为平局代码:#include<iostream>#include<cstring>#include<algorith

2020-09-07 18:12:57 132

原创 刷题第18题:Ancient Cipher

题目链接:https://vjudge.net/problem/UVA-1339题解:此题是给定两个字符串,判断其中一个字符串可以经过整体替换字符,调整顺序,能不能变为另一个字符串水题 由小到大排序后只需要判断字符的数量是否相同即可代码:#include<iostream>#include<string>#include<algorithm>#include<cstring>using namespace std;int a[26],b[26

2020-09-07 17:32:34 108

原创 刷题第十七题:Kickdown

题目链接:https://vjudge.net/problem/UVA-1588题解:这个题需要注意以下几个方面1.注意循环中的break判定条件是循环完后2.不用考虑把短串反过来3.需要考虑短串放在长串上。从一段到另一端代码:#include<iostream>#include<string>#include<algorithm>#include<cstring>#define maxn 110using namespace std;

2020-09-07 09:27:00 131

原创 刷题第十六题:Box

题目链接:https://vjudge.net/problem/UVA-1587题解:判断6组边是否能构成长方体需要满足两个条件:1.六组边两两相对形成3组2.三组边构成ab,ac,bc的形式代码:#include<iostream>#include<algorithm>#include<cstdio>#include<string>#include<cstring>using namespace std;int k,kk;

2020-09-05 20:30:05 408

原创 刷题第十五题:All in All

题目链接:https://vjudge.net/problem/UVA-10340题解:本题是判断一个串是否能由另一个串组成,不一定连续,但必须按顺序水题代码:#include<cstring>#include<string>#include<iostream>#include<algorithm>using namespace std;string sma,big;int main(){ while(cin>>sma

2020-09-05 19:29:28 152

原创 刷题第十四题:Repeating Decimals

题目链接:https://vjudge.net/problem/UVA-202题解:找循环数的题循环的本质是余数一样,所以只要判断是否与前面的余数相同即可代码:#include<iostream>#include<algorithm>#include<cstring>#include<string>using namespace std;int main(){ int digit[10000]; int yu[10000];

2020-09-05 18:19:03 137

原创 刷题第十三题:DNA Consensus String

题目链接:https://vjudge.net/problem/UVA-1368题目解析:字符串处理题意是找出与所给多个字符串差距和最小的字符串,如果满足多个采用字典序最小的那个注意:1.字典序最小,所以不能是AGCT,必须是ACGT2.因为纵向比较,所以只需要循环每一列找出个数最多的那个代码:#include<iostream>#include<algorithm>#include<string>#include<cstring>usin

2020-09-05 17:24:26 98

原创 刷题12:Crossword Answers

题目链接:https://vjudge.net/problem/UVA-232题解:需要注意:1.across和down每个位置的标号一样,只是顺序不一样。2.输出的格式:要写%3d,并且数字和字符串之间·是‘.’3.注意各种细节问题代码:#include<iostream>#include<string>#include<cstring>#include<algorithm>#include<cstdio>#define m

2020-09-05 11:18:43 596

原创 刷题11:Puzzle

题目链接:https://vjudge.net/problem/UVA-227题目解析:此题需要考虑以下几方面1.每次循环后需要加入getchar();2.操作步骤那个地方要等它全部处理完再break代码:```cpp#include<iostream>#include<string>#include<cstring>using namespace std;char ch[7][7];//分布int fl[7][7];//标志变量,表格char

2020-09-04 22:28:06 218

原创 刷题第十题:Periodic Strings

题目链接:https://vjudge.net/problem/UVA-455题解:水题:判断最短循环部分循环判断即可代码: #include<iostream>#include<cstring>#include<string>#define maxn 110using namespace std;char s[maxn];int len;bool check(int k){ int q=len/k;//一共多少段 for(in

2020-09-04 17:08:01 116

原创 刷题九:Digit Counting

题目链接:https://vjudge.net/problem/UVA-1225题解:水题暴力即可代码:`#include<iostream>#include<cstring>#include<string>using namespace std;int main(){ int num; int N; int a[10]; cin>>num; while(num--) { mems

2020-09-04 12:26:53 112

原创 刷题第八题:Molar mass

题目链接:https://vjudge.net/problem/UVA-1586题解:字符串处理:需要单独考虑只有一个元素的情况,以及最后一位加不上,需要单独加代码:#include<iostream>#include<cstring>#include<string>#include<iomanip>#define maxn 110#define C 12.01#define O 16.0#define H 1.008#define N

2020-09-04 12:19:48 144

原创 刷题第七题:Score

题目链接:https://vjudge.net/problem/UVA-1585题解:水题代码:#include#include#include#define maxn 110using namespace std;int main(){char s[maxn];//最小int len;int n;int ans,fl;cin>>n;while(n–){fl=0;ans=0;cin>>s;for(int i=0;s[i]!=0;i++){i

2020-09-04 11:02:28 986

原创 刷题第六题:Circular Sequence

题目链接:https://vjudge.net/problem/UVA-1584题解:水题,字符串处理,不要忘了加0字符代码#include#include#include#define maxn 110using namespace std;int main(){char s[maxn];//输入char ss[maxn];//转换char ans[maxn];//最小int len;int n;cin>>n;while(n–){cin>>s;

2020-09-04 10:56:15 100

原创 刷题5:Digit Generator

题目链接:https://vjudge.net/problem/UVA-1583题解:水题,题目大意是给出数,求出另一个数与他每一位数之和等于这个数并输出,输出满足条件的最小值。如果没有这个数输出0。算法是每一位数最大值是9,所以只需要从n-1循环到n-位数9即可代码:#include#include#includeusing namespace std;int main(){int n;//输入数的个数int k;//输入数的大小int num;//输入数的位数cin>&g

2020-09-03 23:36:04 111

空空如也

空空如也

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

TA关注的人

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