试题链接:https://www.nowcoder.com/acm/contest/77/E 题目描述 情人节到了,小芳和小明手牵手,打算过一个完美的情人节,但是小刚偏偏也来了,当了一个明晃晃的电灯泡,小明很尴尬,就和小刚说,我交给你个任务,你完成了我俩就带你玩,否则你就回家吧.小刚很有当单身狗的觉悟,他坚决不想让小明过好情人节,同为单身狗的你能帮帮他吗?现在有一个n×n(1 <= n <= 1000)的格子,每一个格子都有一个电灯泡,可能是亮的,也可能是灭的(1代表亮, 0代表灭),现在有两…
闯关的lulu 链接:https://www.nowcoder.com/acm/contest/67/J 来源:牛客网 题目描述 勇者lulu某天进入了一个高度10,000,000层的闯关塔,在塔里每到一层楼,他都会获得对应数量的0 1(看情况获得),然后塔里有一个法则,当你身上某个数字达到一个特定的数量时,它们会合成为下一个数字,现在问题来了,当lulu从1层到达第n层的时候,他身上的数字是多少. 第1层 0 第2层 11 第3层 110 第4层 21 第5层 210 第6层 22 第7层 2…
https://www.nowcoder.com/acm/contest/67/D 思路: 先手动模拟一下过程,以下是模拟过程,按顺序表示第几步需要移动的盘标号 1 1 2 1 1 2 1 1 3 1 1 2 1 1 2 1 1 3 1 1 2 1 1 2 1 1 4 1 1 2 ...... 我们发现每出现两次1就会出现一次2,每两次2就会出现一次3,每两次3就会出现一次4,每两次4就会出现一次5...... 然后我们发现如果把所有大于1的标号看成1,那么k步1出现的次数是 k/1 如果把所有…
https://www.nowcoder.com/acm/contest/67/E 思路: dfs 代码: #include<bits/stdc++.h> using namespace std; #define ll long long #define pb push_back #define mp make_pair #define pii pair<int,int> #define mem(a,b) memset(a,b,sizeof(a)) ; const int INF=…
https://www.nowcoder.com/acm/contest/67/G 思路: 分形. 记录中间左边点的坐标,然后推出另外3个点的坐标,递归到最简单的情况. 代码: #include<bits/stdc++.h> using namespace std; #define ll long long #define pb push_back #define mem(a,b) memset(a,b,sizeof(a)) ][]; void dfs(int n,int i,int j){…
https://www.nowcoder.com/acm/contest/67/C 思路: 模拟. 代码: #include<bits/stdc++.h> using namespace std; #define ll long long #define pb push_back #define mem(a,b) memset(a,b,sizeof(a)) ][]={-,,,,,-,,}; ][]; ]; int inx,iny; bool is(int x,int y,int xx,int…
链接:https://www.nowcoder.com/acm/contest/74/B来源:牛客网 题目描述 Taotao的电脑带不动绝地求生,所以taotao只能去玩pc版的荒野行动了, 和绝地求生一样,游戏人物本身可以携带一定重量m的物品,装备背包 之后可以多携带h(h为0代表没有装备背包)重量的东西.玩了几天 taotao发现了一个BUG,当装备背包之后,如果可携带重量没有满,就 可以拿一个任意重的东西.(解释看样例)有一天taotao空降到了一个 奇怪的岛上,岛上有n件装备,每个装备都…
链接:https://www.nowcoder.com/acm/contest/74/F来源:牛客网 题目描述 德玛西亚是一个实力雄厚.奉公守法的国家,有着功勋卓著的光荣军史. 这里非常重视正义.荣耀.职责的意识形态,这里的人民为此感到强烈自豪. 有一天他们想去制裁邪恶的比尔吉沃特,于是派遣了自己最优秀的战士. 结果比尔吉沃特领土太小,只有长为n宽为m共计n*m块土地,其中有些土 地标记为0表示为高山峻岭或者深海湖泊,英雄们无法在其中站立,只有标 记为1的土地才能容纳一个英雄.德玛西亚的英雄们战…
链接:https://www.nowcoder.com/acm/contest/67/J来源:牛客网 题目描述 勇者lulu某天进入了一个高度10,000,000层的闯关塔,在塔里每到一层楼,他都会获得对应数量的0 1(看情况获得),然后塔里有一个法则,当你身上某个数字达到一个特定的数量时,它们会合成为下一个数字,现在问题来了,当lulu从1层到达第n层的时候,他身上的数字是多少. 第1层 0 第2层 11 第3层 110 第4层 21 第5层 210 第6层 22 第7层 220 第8层 22…
吐泡泡题目链接:https://www.nowcoder.com/acm/contest/74/A 题目: 思路: 这种题目当初卡了我很久,今天早训时遇到一个一样得题,一眼就想到用栈模拟,就又回来把这题补了.这题很简单,看代码基本上就能看懂,就不解释了. 代码实现如下: #include <set> #include <map> #include <queue> #include <stack> #include <cmath> #include…
题目链接:https://www.nowcoder.com/acm/contest/76/D 做题时没注意到“无论出现在哪个格子”..题中也没说明一个格子只能经过一次,其实没有想象的复杂. 判断如果点的下边或右边不能走,传送门数+1.特判只有一个‘.’传送门数为0 代码: #include<bits/stdc++.h> using namespace std; ][]; int main() { int n, m, i, j; while(~scanf("%d%d", &a…
试题链接:https://www.nowcoder.com/acm/contest/76/A [思路] 每个‘#’的右边和下边如果也是‘#’说明这两个点构成通路,以此重构一幅图,然后找二分图的最大匹配. [代码] #include<bits/stdc++.h> using namespace std; ][]; ]; vector<]; ][], match[], n; bool dfs(int u) { ; i < G[u].size(); i++) { int v = G[u]…
链接:https://www.nowcoder.com/acm/contest/74/B来源:牛客网 Taotao的电脑带不动绝地求生,所以taotao只能去玩pc版的荒野行动了, 和绝地求生一样,游戏人物本身可以携带一定重量m的物品,装备背包 之后可以多携带h(h为0代表没有装备背包)重量的东西.玩了几天 taotao发现了一个BUG,当装备背包之后,如果可携带重量没有满,就 可以拿一个任意重的东西.(解释看样例)有一天taotao空降到了一个 奇怪的岛上,岛上有n件装备,每个装备都有重量Wi…
题目描述 既然是了断局了,大家就随便玩玩数字呗.已知一个数列前十项分别是{0, 1, 1, 2, 4, 7, 13, 24, 44, 81},小G不满足呀:我要更多的数!!!不给就不让你们玩了.小G会问你第n项是什么数字,请回答这个顽皮的孩子吧. 输入描述 多组数据输入输出,第一行输入一个整数n(1<=n<=50). 输出描述 输出数列中的第n个数. 样例输入 样例输出 一道简单题了,刚开始写的时候没注意64位的输出格式,错了几次,还找不到错误,不过规律是很容易找的 #include <…
传送门:https://www.nowcoder.net/acm/contest/76/B 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 65536K,其他语言131072K 64bit IO Format: %lld 题目描述 随着如今社会的不断变化,交通问题也变得越来越重要,所以市长决定建设一些公路来方便各个城市之间的贸易和交易.虽然市长的想法很好,但是他也遇到了一般人也经常头疼的问题,那就是手头的经费有限……在规划过程中,设计师们已经预算出部分城市之间建设公路的经费需求.…
传送门:https://www.nowcoder.net/acm/contest/76/F 题目描述 从实验室出来后,你忽然发现你居然把自己的电脑落在了实验室里,但是实验室的老师已经把大门锁上了.更糟的是,你没有那个老师的电话号码.你开始给你知道的所有人打电话,询问他们有没有老师的电话,如果没有,他们也会问自己的同学来询问电话号码.那么,你能联系到老师并且拿到电脑吗. 输入描述: 存在多组测试样例每组样例的第一行分别是两个整数n(1<n<=50),m(1<m<=2000),n是在题…
解题思路:二分图的最大匹配,但这题是所有点都遍历一遍,所以答案/2: 代码: #include<iostream> #include<algorithm> #include<cstdio> #include<cstring> #define maxn 100500 using namespace std; struct Edge { int next; int to; int fa; int w; }edge[maxn]; char s[60][60]; i…
题目链接:https://www.nowcoder.com/acm/contest/77/C [题意] 求一个字符串中最长的子串,要求子串既是原串的前缀又是后缀,除前后缀还在中间出现过. [思路] KMP的应用,首先要理解next数组的含义:一个字符串中 前缀 和 后缀的最长公共长度,next的值也是在匹配原串时如果不匹配时返回的下标值,而不是从头匹配. 本题要满足中间也出现,也就是说next[j] = next[i](j < i).但是最长的不一定在中间出现过,也可能是最长的一部分,比如111…
题目链接:https://www.nowcoder.com/acm/contest/76/E 题目描述         在战争时期,A国派出了许多间谍到其他国家去收集情报.因为间谍需要隐秘自己的身份,所以他们之间只是单向联系.所以,某个间谍只能单向联系到一部分的间谍.同时,间谍也不知道跟他联系的是谁. HA是间谍们的老大,但他也只能联系到部分的间谍.HA现在有一项命令有告诉所有的间谍.HA想要知道他至少要告诉多少个他能联系上的间谍才能通知到所有的间谍. 输入描述: 有多个测试数据.对于每个测试数…
题目描述 在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序.一个排列中逆序的总数就称为这个排列的逆序数.比如一个序列为4 5 1 3 2, 那么这个序列的逆序数为7,逆序对分别为(4, 1), (4, 3), (4, 2), (5, 1), (5, 3), (5, 2),(3, 2). 输入描述: 第一行有一个整数n(1 <= n <= 100000), 然后第二行跟着n个整数,对于第i个数a[i],(0 <= a[i] <= 100…
Tree Recovery 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K,其他语言262144K 64bit IO Format: %lld 链接:https://www.nowcoder.com/acm/contest/77/H 题目描述:进行区间求和,区间加减(线段树加懒惰标记) 输入 10 5 1 2 3 4 5 6 7 8 9 10 Q 4 4 Q 1 10 Q 2 4 C 3 6 3 Q 2 4 输出 4 55 9 15 #include<cstdio…
[气死我了 写完了博客发布 点看来一看怎么只剩下一半不到的内容了!!!!!!!!!!] [就把卡的那两道放上来好了 其余的不弄了 生气!!!!!] 可以说是很久没有打比赛了 今天这一场主要是  基础算法学习(数据结构基础.枚举.递推.贪心.模拟.递归. STL) 所以说今天的题都不难 结果最后只过了3道 卡了两道吃鸡的卡了超久 最后发现都是很傻逼的错误 先来说今天卡了很久的两道吃鸡的题目[今天吃鸡和我过不去咯] A大吉大利,今晚吃鸡--枪械篇 链接:https://www.nowcoder.co…
2018年牛客网NOIP赛前训练营游记 提高组(第一场) 中位数 #include<cstdio> #include<cctype> #include<climits> #include<algorithm> inline int getint() { register char ch; while(!isdigit(ch=getchar())); register int x=ch^'0'; while(isdigit(ch=getchar())) x=(…
链接:牛客网暑期ACM多校训练营(第五场):F - take 题意: Kanade有n个盒子,第i个盒子有p [i]概率有一个d [i]大小的钻石. 起初,Kanade有一颗0号钻石.她将从第1到第n打开盒子.当她打开一个盒子时,如果里面有一颗钻石并且比它的钻石大,那么她将用她的钻石代替它. 现在您需要计算预期的替换次数. 您只需要输出答案模块998244353. 注意:如果x%998244353 = y * d%998244353,那么我们表示x / y%998244353 = d%99824…
layout: post title: 2019牛客暑期多校训练营(第五场)G - subsequeue 1 (一题我真的不会的题) author: "luowentaoaa" catalog: true tags: mathjax: true - ACM-ICPC 题意 给你两个由数字组成的字符串\(S\),\(T\) 长度为\(1e3\),问你S中有多少个子序列的值大于字符串T: 思路 首先在比赛的时候一眼确定是\(N^2\) 复杂度的DP,但是想了两三个小时却没想到怎么转移,各种…
山东省ACM多校联盟省赛个人训练第六场 D Rotating Scoreboard https://vjudge.net/problem/POJ-3335 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 This year, ACM/ICPC World finals will be held in a hall in form of a simple polygon. The coac…
/* *用KMP算法实现字符串匹配搜索方法 *该程序实现的功能是搜索本目录下的所有文件的内容是否与给定的 *字符串匹配,如果匹配,则输出文件名:包含该字符串的行 *待搜索的目标串搜索指针移动位数 = 已匹配的字符数 - 对应部分匹配值 */ #include <stdio.h> #include <string.h> #include <stdlib.h> #define KEYWORD_MAX_LENGTH 100 //设定搜索串的最大长度 int kmp_table…
next数组表示字符串前后缀匹配的最大长度.是KMP算法的精髓所在.可以起到决定模式字符串右移多少长度以达到跳跃式匹配的高效模式. 以下是对next数组的解释: 如何求next数组: 相关链接:按顺序阅读为宜 详解KMP算法:https://www.cnblogs.com/yjiyjige/p/3263858.html       //我觉得算法部分,这篇讲得最好,优先看,例子很具体 字符串匹配KMP算法:https://kb.cnblogs.com/page/176818/         …
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是算法数据结构专题的第29篇文章,我们来聊一个新的字符串匹配算法--KMP. KMP这个名字不是视频播放器,更不是看毛片,它其实是由Knuth.Morris.Pratt这三个大牛名字的合称.老外很喜欢用人名来命名算法或者是定理,数学里就有一堆,什么高斯定理.欧拉函数什么的.但是中国人更倾向于从表意上来给一个概念命名,比如勾股定理.同余定理等等.之前觉得用人名命名很洋气,作者可以青史留名,后来想想这也是英文表意能力不足,很难用表意的方…
题目链接:https://www.nowcoder.com/acm/contest/143/F 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 Kanade has n boxes , the i-th box has p[i] probability to have an diamond of d[i] size. At the beginning , Kanade has a dia…