算法与数据结构
文章平均质量分 55
Cr42yHC1
这个作者很懒,什么都没留下…
展开
-
BZOJ-2463 谁能赢呢?
题目描述:小明和小红经常玩一个博弈游戏。给定一个 n × n 的棋盘,一个石头被放在棋盘的左上角。他们轮流移动石头。每一回合,选手只能把石头向上,下,左,右四个方向移动一格,并且要求移动到的格子之前不能被访问过。谁不能移动石头了就算输。假如小明先移动石头,而且两个选手都以最优策略走步,问最后谁能赢?input输入文件有多组数据。输入第一行包含一个整数n,表示棋盘的规模。当输入n为0时,表示输入结束...原创 2018-07-11 17:05:17 · 318 阅读 · 0 评论 -
codeforces-1097/A.Gennady and a Card Game
算我球球你啦,真的是水题题目链接题意:简单的说就是UNO,给你一张牌,问你能不能出一张牌,能就是yes,不能就是noUNO的规则奥:你手牌中的牌数字(第一个字符)或者花色(第二个字符)和上家打出的牌相同你就能出牌.代码:#include<bits/stdc++.h>using namespace std;const int maxn = 1e5 + 5;in...原创 2019-03-17 09:35:10 · 415 阅读 · 0 评论 -
Codeforces 1121/problem/B Mike and Children
题目链接题意:很简单输入n,下面n个数代表每个糖果的权值,现在有很多小孩,每个小孩必须要得到两颗糖,而且两颗糖的权值和要和其他小孩的相等,现在想问你最多能分给多少小孩.思路:其实我是很水的,先用一个数组a来存权值,再用一个数组b来存权值和(有点像桶排序的那种赶脚)这里b数组大小开错了,RE了两发AC代码:#include<bits/stdc++.h>...原创 2019-03-16 15:13:53 · 225 阅读 · 0 评论 -
Codeforces Round #543 (Div. 2, based on Technocup 2019 Final Round) A. Technogoblet of Fire
题目链接题意:有n个学生,分别在m个学校,要选出每个学校能力值最大的学生来参加比赛,现在有个小给给要给k(编号)个学生开后门,让他们参加比赛,报几个野鸡学校的名字让他们参赛,问你最少要报几个野鸡学校;输入 >> n >> m>> k;第二行输入每个学生的能力值第三行输入每个学生所在的学校第四行输入走后门的学生的编号其实就是问走后门...原创 2019-03-15 07:50:02 · 221 阅读 · 0 评论 -
数据结构篇-队列
队列这种数据结构,是一个等待处理的的行列,当我们希望按数据抵达的先后顺序处理数据的时候一般会用到,数据中最先放入的元素会被先取出,遵循先入先出的原则 《挑战程序设计竞赛2》中的例题模拟CPU循环调度处理任务现在有名称为name(i)且处理时间为time(i)的n个任务按顺序排成一列,CPU通关循环调度法,逐一处理这些任务,每个任务最多处理q ms之后任务将被移动至队尾,CPU随即开...原创 2018-11-29 11:59:21 · 231 阅读 · 0 评论 -
筛法求素数
又到了培训新生的季节,昨天新生中的某位大佬突然问到筛法求素数的问题,让我这个每次都用最傻逼的暴力循环求素数的老腊肉声泪俱下,反思了一下自己根本不会筛法求素数,于是决定补上。说出来怕大家笑话,学习前,我是这么求素数的#include<bits/stdc++.h>using namespace std;int func(int n) { int count = 0;...原创 2018-10-21 16:22:01 · 2391 阅读 · 0 评论 -
数据结构篇-栈
本篇开始学习栈,首先栈这种数据结构是一种后进先出的结构,栈限定为只能在一段进行删除或插入操作。比如我们要插入2 3 1三个数,按照2 3 1 的顺序插入叫做入栈,出栈的顺序就是1 3 2。现在尝试写一个判断回文串的程序。/**这里讲述用栈的思想来判断回文串,*主要思路是取字符串的前半截入栈,*然后确定要匹配的字符串后半截下标,逆序将栈与字符串匹配**/#include<...原创 2018-10-25 11:31:03 · 162 阅读 · 0 评论 -
初等排序(选择、冒泡、插入、稳定性)
参考教材来自《挑战程序设计竞赛2》0x01选择排序思路:输入的一串无序数字中,在第一次排序前,整个数组都是未排序状态,找出未排序部分最小的值的位置,与第一个值的位置交换(如果就是第一个最小则不换,后面的思路也是一样),本次交换后,第一个数是已排序部分,后面是未排序部分,然后再找未排序部分的第一个数(就是整个数组的第二个),再找到未排序部分的最小数位置交换位置,已排序部分加一……一直循环...原创 2018-09-01 21:06:22 · 279 阅读 · 0 评论 -
C++大数相乘
总结一下前段时间写的大数模板原理就是用string型代替int(double什么的或者 unsigned long long int),然后逐个分析字符,用对应字符所表示的数字相乘来重新写乘法。首先是声明两个字符a[maxn + 5], b[maxn + 10];数组来保存我们键入的两个大数。众所周知,乘法是两个数尾部对齐从后往前乘的,所以又要声明两个整型数组x[maxn + 10], y[max...原创 2018-07-13 11:37:24 · 1325 阅读 · 0 评论 -
NYOJ-108 士兵杀敌(一)(NSWOJ-1204)前缀和
前段时间补了一下前缀和的知识,用此题来简述一下思想题目描述南将军手下有N个士兵,分别编号1到N,这些士兵的杀敌数都是已知的。小工是南将军手下的军师,南将军现在想知道第m号到第n号士兵的总杀敌数,请你帮助小工来回答南将军吧。注意,南将军可能会问很多次问题。输入只有一组测试数据第一行是两个整数N,M,其中N表示士兵的个数(1<N<1000000),M表示南将军询问的次数(1<M<...原创 2018-07-13 09:57:34 · 193 阅读 · 0 评论 -
CodeForces - 988B /problemset/problem/988/B
题目链接蒟蒻不会写看了松超大佬的博客QAQ题意:给你一个数字n表示有n个字符串,现在你要对字符串按长度排序,判断上一个字符串是否为下一个字符串的字串,一直判断下去,如果全部满足就是YES否则是NO。然后是字符串的查找 (这样就是没找到的情况str[i + 1].find(str[i]) == string::npos还有字符串排序奥sort(str, str + ...原创 2019-03-22 19:40:02 · 242 阅读 · 0 评论