nx

牛客练习赛13

别说谁变了你拦得住时间么 提交于 2020-01-22 18:36:01
链接: https://www.nowcoder.com/acm/contest/70/A 来源:牛客网 幸运数字Ⅰ 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 定义一个数字为幸运数字当且仅当它的所有数位都是4或者7。 比如说,47、744、4都是幸运数字而5、17、467都不是。 现在,给定一个字符串s,请求出一个字符串,使得: 1、它所代表的整数是一个幸运数字; 2、它非空; 3、它作为s的子串(不是子序列)出现了最多的次数(不能为0次)。 请求出这个串(如果有多解,请输出字典序最小的那一个)。 输入描述: 串s(1 <= |s| <= 50)。s只包含数字字符,可以有前导零。 输出描述: 一个串表示答案。无解输出-1。 示例1 输入 047 输出 4 示例2 输入 16 输出 -1 虽然是找子序列,但是你想啊,要出现次数最多,那么一定是4和7 所以答案就只有4和7,分情况讨论下 #include<bits/stdc++.h> using namespace std; string str; int main() { ios::sync_with_stdio(false); cin>>str; int sum1=0,sum2=0; for(int i=0;str[i

蓝桥杯 两点(cf2)

☆樱花仙子☆ 提交于 2020-01-17 08:19:23
福克斯在玩一款手机解迷游戏,这个游戏叫做"两点"。基础级别的时候是在一个 n×mn×m 单元上玩的。像这样: 每一个单元有包含一个有色点。我们将用不同的大写字母来表示不同的颜色。 这个游戏的关键是要找出一个包含同一颜色的环。看上图中 44 个蓝点,形成了一个环。一般的,我们将一个序列 d1,d2,...,dkd1,d2,...,dk 看成一个环,当且仅当它符合下列条件时: 1. 这 kk 个点不一样,即当 i≠ji≠j 时,didi 和 djdj 不同。 2. kk 至少是 44。 3. 所有的点是同一种颜色。 4. 对于所有的 1≤i≤k−11≤i≤k−1: didi 和 di+1di+1 是相邻的。还有 dkdk 和 d1d1 也应该相邻。单元 xx 和单元 yy 是相邻的当且仅当他们有公共边。 当给出一幅格点时,请确定里面是否有环。 Input 单组测试数据。 第一行包含两个整数 nn 和 mm (2≤n,m≤50)(2≤n,m≤50): 板子的行和列。 接下来 nn 行,每行包含一个有 mm 个字母的串,表示当前行每一个点的颜色。每一个字母都是大写字母。 Output 如果有环输出 Yes,否则输出 No。 input 3 4 AAAA ABCA AADA output No 思路: 从某个点开始,每走过一个点标记为1,如果能再次走回起始点,并且途中经过的点数大于等于4

[9018/1904]火星商店

自古美人都是妖i 提交于 2020-01-16 03:46:11
题目:火星上的一条商业街里按照商店的编号1,2 ,…,n ,依次排列着n个商店。商店里出售的琳琅满目的商品中,每种商品都用一个非负整数val来标价。每个商店每天都有可能进一些新商品,其标价可能与已有商品相同。 火星人在这条商业街购物时,通常会逛这条商业街某一段路上的所有商店,譬如说商店编号在区间[L,R]中的商店,从中挑选1件自己最喜欢的商品。每个火星人对商品的喜好标准各不相同。通常每个火星人都有一个自己的喜好密码x。对每种标价为val的商品,喜好密码为x的火星人对这种商品的喜好程度与val异或x的值成正比。也就是说,val xor x的值越大,他就越喜欢该商品。每个火星人的购物卡在所有商店中只能购买最近d天内(含当天)进货的商品。另外,每个商店都有一种特殊商品不受进货日期限制,每位火星人在任何时刻都可以选择该特殊商品。每个商店中每种商品都能保证供应,不存在商品缺货的问题。 对于给定的按时间顺序排列的事件,计算每个购物的火星人的在本次购物活动中最喜欢的商品,即输出val xor x的最大值。这里所说的按时间顺序排列的事件指以下2种事件 事件0,用三个整数0,s,v,表示编号为s的商店在当日新进一种标价为v 的商品。 事件1,用5个整数1,L,R,x,d,表示一位火星人当日在编号为L到R的商店购买d天内的商品,该火星人的喜好密码为x。 对于所有数据点,1<= n,m,x,val <=

G - BFS Gym - 101755H

喜你入骨 提交于 2020-01-13 00:52:13
题目: G - BFS Gym - 101755H You play a new RPG. The world map in it is represented by a grid of n  ×  m cells. Any playing character staying in some cell can move from this cell in four directions — to the cells to the left, right, forward and back, but not leaving the world map. Monsters live in some cells. If at some moment of time you are in the cell which is reachable by some monster in d steps or less, he immediately runs to you and kills you. You have to get alive from one cell of game field to another. Determine whether it is possible and if yes, find the minimal number of steps required

UVA 12171 Sculpture 离散化

大憨熊 提交于 2020-01-10 19:29:25
难点: 理解离散化 这个题目中构造一个长宽高都为1001的容器,然后离散化 分割为多个小方块 (离散化:将这一方块用一个坐标表示),每个方块要么是实心,要么是空心。 通过lower_bound函数找到unique去重后的数组下标去三维遍历标记实心,然后bfs。 在这里,每一个方块的表示仅通过离散化后的单一坐标,与题目表示方法相同。 表面积计算通过bfs方向来源来判断哪一面。 空方块体积直接算,实心的不会进入bfs队列。 #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #include<queue> using namespace std; const int maxn=50+1; const int maxc=1000+1; int xi[maxn],yi[maxn],zi[maxn],xi0[maxn],yi0[maxn],zi0[maxn],xl[maxn*2],yl[maxn*2],zl[maxn*2]; int nx,ny,nz,color[maxn*2][maxn*2][maxn*2]; int dx[]={1,-1,0,0,0,0}, dy[]={0,0,1,-1,0,0}, dz[]={0,0,0,0,1,-1}; struct loc{ int x,y,z; loc

【教程】BFS学习笔记

99封情书 提交于 2020-01-10 10:01:22
- 例子(已被授予主人公的名字使用权) ZZJ 进入了一个 n × m 的迷宫矩阵,执着的他表示要穿过迷宫。 ZZJ 在地图的左上角,而迷宫出口在右下角,设进入每个房间都需要 1 的时间,他在入口的地面上捡到一张迷宫地图,发现有一些障碍物(图中以“障碍”表示,代码中以“#”表示,存在map数组中),于是他决定计算出自己到终点最少需要时间(请思考后再往下看)。 1 2 3 4 5 6 7 1 起点 2 障碍 3 障碍 4 障碍 5 障碍 终点 - 思路: - 首先,我们需要一个小本本存ZZJ到达的地方及步数: 1 struct nod{int x,y,t;}f[100001];//x,y表示位置,t表示ZZJ到达此点需要的步数 - 其次,我们需要一个bool数组存i,j这个位置是否被走过以及一个map数组存地图: 1 bool bz[101][101];//这里以0<n,m<=100为数据范围,实际情况请以题面修改数组范围 2 char map[101][101]; - 再次,我们需要一个方向数组,使ZZJ能上、下、左、右移动: 1 int dx[4]={0,1,0,-1}; 2 int dy[4]={1,0,-1,0}; - 准备完毕了,ZZJ可以出发啦! - 首先,ZZJ将自己的位置存进小本本的第一格里: 1 tou=1,wei=2;//用两个指针指向小本本队头和队尾 2 f

比赛总结,做题要细心!

岁酱吖の 提交于 2020-01-05 05:23:26
今天的集训中期比赛暴露出我的很多问题,对于字符串处理的不熟悉,致使 B 题没写对,对于 最水的两道枚举和贪心,也是一共 WA 了五次,在四十几分钟之后才过的。 H 题的 BFS 思路没错, 关键代码也没写错,结果因为重复使用了变量,一直没检查出来,过了样例就胡乱提交题, 结果 WA 了六次,赛后才过掉。H题几乎用了三个小时,结果问题出在这个地方,心里真的不好 受! #include<cstdio> #include<cstring> #include<cstdlib> #include<algorithm> #include<queue> using namespace std; const int MAXN = 105; const int dx[] = { 0, 0, 1, -1}; const int dy[] = { 1, -1, 0, 0}; int map[MAXN][MAXN]; char s[MAXN]; int d[MAXN][MAXN]; int n, Sx, Sy, Ex, Ey; typedef pair<int , int> pii; void init() { int i, j; for( i = 1; i <= n; i ++) { scanf( "%s", s); for( j = 1; j <= n; j ++) { if( s[j - 1] ==

noip模拟测试7

我的梦境 提交于 2019-12-30 04:39:26
T1:求方程ax+by=c的解的个数,若超过65535则输出ZenMeZheMeDuo   ( T<=10000 -1,000,000 <= a,b,c <= 1,000,000 )      这个形式? 一看不就是扩展欧几里得吗?   ——by 冯神   然而群我数论最菜......   这个形式?一看不就是特判水分加暴力吗?  ——by me   考场上一脸懵比,面向数据编程水了60分......      那说说正解,先想到exgcd,然后脑子……#@¥@&%¥%&%¥@#%……一通乱转,便有了算法雏形   exgcd求一般情况解 + 一大堆特判   先看一般情况:     我们可以用exgcd求出 ax + by = gcd(a,b) 的一组解,而且根据裴蜀定理可以知道,当且仅当 gcd(a,b) | c 时原方程有解     当有解时,再由exgcd的通解可以知道, 解的分布情况应该是一次函数上一些位于第一象限的离散整点,且每隔gcd(a,b)出现一次(如图)          位于一次函数上?那就好办了,只要找到第一象限内最高点和最低点就可以用差值除以gcd(a,b)计算出答案了   那特判的情况呢?     某大佬指出,a、b、c 三个数分别有正、零、负三种情况,只要分3 3 种情况讨论就好了     %¥&@%¥@#%&    

攻防世界pwn之新手练习区

核能气质少年 提交于 2019-12-27 01:35:04
0x00 get_shell 题目描述:运行就能拿到shell呢,真的 from pwn import * io = remote('111.198.29.45','36389') io.interactive() 0x01 CGfsb 题目描述:菜鸡面对着pringf发愁,他不知道prinf除了输出还有什么作用 1.基本信息: Arch: i386-32-little RELRO: Partial RELRO Stack: Canary found NX: NX enabled PIE: No PIE (0x8048000) 2.ida查看伪代码,按照题目的提示在主函数找到了printf函数,可以明显的看到ptintf没有按照标准格式 printf("<格式化字符串>", <参量表>) 书写,存在格式化字符串漏洞,pwnme的值等于8的时候可以得到flag puts("your message is:"); printf(&s); //漏洞点 if ( pwnme == 8 ) { puts("you pwned me, here is your flag:\n"); system("cat flag"); } printf函数可以接受可变数量的参数,并将第一个参数作为格式化字符串,根据其来解析之后的参数,根据 C 语言的调用规则

问题 1672: 迷宫问题 (BFS)

柔情痞子 提交于 2019-12-26 06:32:26
题目链接: https://www.dotcpp.com/oj/problem1672.html 问题 1672: 迷宫问题 时间限制: 1Sec 内存限制: 32MB 提交: 663 解决: 158 题目描述 小明置身于一个迷宫,请你帮小明找出从起点到终点的最短路程。 小明只能向上下左右四个方向移动。 输入 输入包含多组测试数据。输入的第一行是一个整数T,表示有T组测试数据。 每组输入的第一行是两个整数N和M(1<=N,M<=100)。 接下来N行,每行输入M个字符,每个字符表示迷宫中的一个小方格。 字符的含义如下: ‘S’:起点 ‘E’:终点 ‘-’:空地,可以通过 ‘#’:障碍,无法通过 输入数据保证有且仅有一个起点和终点。 输出 对于每组输入,输出从起点到终点的最短路程,如果不存在从起点到终点的路,则输出-1。 样例输入 1 5 5 S-### ----- ##--- E#--- ---## 样例输出 9 宽度优先搜索的常规题,但是需要注意判断:如果不存在通路需要返回-1(否则只能过50%,存在一半的数据); 1 #include <iostream> 2 #include <algorithm> 3 #include <cmath> 4 #include <string> 5 #include <cstring> 6 #include <map> 7 #include