ACM 构造
15zhazhahe
打杂小能手/吃/喝/睡/胖/菜/
展开
-
Ural 2063 Black and White【有意思】
题目链接:http://acm.timus.ru/problem.aspx?space=1&num=2063 题意:只输入一个m,表示共进行m轮游戏,每轮游戏都会提供给你一个只含有01的字符串,第一场游戏字符串长度为2,第二场尾3……输出? x y表示x位置和y位置的元素交换,! x y表示你认为x位置和y位置的元素相等(正确率要在80%以上) 解析:题目意思相当于你输出指令交换这个字符串里的元原创 2017-02-16 20:09:14 · 395 阅读 · 0 评论 -
CodeForces 814B An express train to reveries
题目链接:http://codeforces.com/contest/814/problem/B 题意:给你两个长度为n的序列a,b,让你求一个序列p,他满足,和a有一个元素不同,和b有一个元素不同,且是n的全排列,让你输入任意一种满足题意的序列p 解析:首先有两种情况,a和b有一个不同,那么那一个不同的应该就是n个元素里除去n-1个相同的剩下的,第二种情况就是a和b有两个不同,那么这两个位置就原创 2017-06-09 00:18:59 · 815 阅读 · 0 评论 -
CodeForces 754A Lesha and array splitting
题目链接:http://codeforces.com/contest/754/problem/A 题意:给你一个长度为n的数组,让你把他划分成若干个任意长度的子序列,但是这个子序列的和不能为0,若不能划分就输出NO,否则输出YES,并输出子序列的区间个数,和区间 解析:一个非零数组为一个区间肯定是最方便的,然后0就跟最近的非零数抱团,所以从前往后扫,last初始为1,遇到非零数就更新为last+原创 2017-05-07 11:11:38 · 657 阅读 · 0 评论 -
CodeForces 805B 3-palindrome
题目链接:http://codeforces.com/contest/805/problem/B 题意:让你构造一个长度为n的字符串,这个字符串只有abc构成,要求没有长度为3的回文子串,且c要尽可能的少 解析:aabbaabb这样子的貌似就没有长度为3的回文子串了,那就直接输出呗……#include <bits/stdc++.h>using namespace std;int main(v原创 2017-05-05 09:17:05 · 876 阅读 · 0 评论 -
CodeForces 803A Maximal Binary Matrix
题目链接:http://codeforces.com/contest/803/problem/A 题意:给你一个n*n的矩阵,让你往里面填1,使得这个矩阵对称,然后输出这个矩阵字典序最大的那个矩阵,如果无法完成就输出-1,矩阵字典序就是每行都进行字典序比较 解析:带点贪心的构造题,首先k>n*N肯定是输出-1,剩下的,由于是要输出字典序最大的,那么肯定是尽可能把每一行都填满,但是要对称着填,对角原创 2017-05-03 09:02:45 · 813 阅读 · 0 评论 -
CodeForces 761E Dasha and Puzzle【dfs】
题目链接:http://codeforces.com/contest/761/problem/E 题意:给你一颗树,问你能否把这颗树放在二维坐标轴上,且每条边都与x或y轴平行,且每条边不可以重合,点也不能重合,如果可以请输出每个点的坐标 解析:其实这是一道很容易就想到的搜索题,奈何我一直姿势不对,WA成傻逼,首先如果一个点度数超过4那肯定是不行的,然后你随便选一个点,去做dfs,按照一个方向开始原创 2017-04-03 15:45:06 · 609 阅读 · 0 评论 -
CodeForces 761D Dasha and Very Difficult Problem
题目链接:http://codeforces.com/contest/761/problem/D 题意:有一个序列c由序列a和b构造,c[i] = b[i]-a[i],现告诉你a和b中的元素范围都在l和r内,现告诉你a这个序列的元素,在告诉你c这个序列的排名即p[i]代表c[i]在c中为第几小,问你能否构造出一个b序列来 解析:首先由公式可以得到,b[i] = a[i]+c[i],但是现在c[i原创 2017-04-03 14:48:26 · 537 阅读 · 0 评论 -
Gym - 100623I Important Wires
题目链接:https://vjudge.net/problem/Gym-100623I 题意:给你n个引脚,每个引脚其实就是一行逻辑表达式,让你把所有的引脚通过逻辑运算组合成一条电路,使得这条电路的输出一定是true,其实也就是给你n个变量,让你通过~,|,&,=>,<=>,构成一条逻辑表达式,且这条逻辑表达式一定为真 解析:隐藏水题啊,看到输出那么复杂,以为很难的,看懂题意以后就太简单了,直接原创 2017-03-31 19:59:26 · 454 阅读 · 0 评论 -
Gym - 100623F Fenwick Tree
题目链接:https://vjudge.net/problem/Gym-100623F 题意:给你一个数组a,然后根据a会求出一个数组b(题目的公式),现在让你改变一下数组a,使得求出来的数组b为数组a的前缀和,让你输出改造后的数组a 解析:观察一下可以知道,偶数项的b[i]总是加多了几项(含有2的因子个数),要想使得构造的数组a求出来的b为其前缀和,那么只能讲加多的那些在前一位的时候减去,这样原创 2017-03-31 19:29:28 · 445 阅读 · 0 评论 -
Gym - 100623C Class
题目链接:https://vjudge.net/problem/Gym-100623C 题意:给你r*c个座位,让你给n个人安排座位,要求看起来人尽可能做得满,也就是,求横排最大值和竖排最大值的最小值,然后输出这个安排的方案 解析:如果一行加一竖都能坐满的话(n>=r+c-1),那就直接填满一行和一竖,剩下的随便放,如果不能填满某一行或某一竖的话,只能一行放n/2个,另一竖放剩下的#includ原创 2017-03-31 10:26:00 · 320 阅读 · 0 评论 -
Gym - 100623C Class
题目链接:https://vjudge.net/problem/Gym-100623C 题意:给你r*c个座位,让你给n个人安排座位,要求看起来人尽可能做得满,也就是,求横排最大值和竖排最大值的最小值,然后输出这个安排的方案 解析:如果一行加一竖都能坐满的话(n>=r+c-1),那就直接填满一行和一竖,剩下的随便放,如果不能填满某一行或某一竖的话,只能一行放n/2个,另一竖放剩下的#includ原创 2017-03-31 10:25:00 · 628 阅读 · 0 评论 -
Gym - 100623H Holes
题目链接:https://vjudge.net/problem/Gym-100623H 题意:你在一张纸上打字,数字4,6,9,0可以产生一个洞,8可以产生两个洞,现在告诉你这张纸上有多少个洞,现在让你求,能产生这么多洞的最小的数字是多少 解析:数字要竟可能的小,也就是位数尽可能的小,所以多用8,如果是奇数位的话,那么首位补个4#include <bits/stdc++.h>using nam原创 2017-03-31 10:10:23 · 497 阅读 · 0 评论 -
CodeForces 791C Bear and Different Names
题目链接:http://codeforces.com/contest/791/problem/C 题意:给你n和k,表示有n个士兵,下面有n-k+1个字符串,表示对i到i+k-1的士兵的判断,如果i到i+k-1的士兵没有名字重复的,那就是YES,否则NO,让你输出一个符合输入的字符串序列 解析:首先名字的组成很重要:”[A-Z][a-z]{0,9}”,其次是怎么搞,其实先构造出YES的很简单,全原创 2017-03-22 13:58:36 · 354 阅读 · 0 评论 -
CodeForces 765D Artsem and Saunders
题目链接:http://codeforces.com/contest/765/problem/D 题意:有这么一个函数f:n->n,问你是否存在g:n->m,和h:m->n,且满足g(h(x)) = x,h(g(x)) = f(x),现告诉你n和f(1)到f(n),问你是否存在,若不存在则输出-1,若存在输出m,g(1)到g(n)和h(1)到h(m) 解析: 因为g(h(x)) = x,h(g原创 2017-03-27 19:54:16 · 329 阅读 · 0 评论 -
Gym - 101243H Non-random numbers【构造+数学】
题目链接:https://vjudge.net/problem/Gym-101243H 题意:给你一个数n,让你求有多少个不同的n位数,而且从左往右数第i位不能为i,其实不能有前导零 解析:其实就是个排列组合的问题吧,第一位只能放8个数,第二位一直到第9位能放9位数,其他可以放10位数,直接输出即可#include <iostream>#include <cstring>#include <原创 2017-03-10 13:47:23 · 582 阅读 · 0 评论 -
POJ 1426 Find The Multiple 【BFS】
题目链接:http://poj.org/problem?id=1426 题意:给你一个n,让你找一个可以整除n的数,这个数只有0和1构成 解析:由于这个数很特殊,所以可以构造出来,用bfs从1开始,每步只能x*10或者x*10+1#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#inclu原创 2017-02-17 10:35:16 · 272 阅读 · 0 评论 -
CodeForces 828C String Reconstruction
题目链接:http://codeforces.com/contest/828/problem/C 题意:告诉你一些字符串的信息,要求你重组并输出字典序最小的这个字符串,告诉你的信息是,某个子串在某几个位置出现,保证给的信息不冲突 解析:直接模拟做,但是要避免掉一些重复的情况#include <bits/stdc++.h>using namespace std;const int maxn =原创 2017-07-12 13:19:15 · 895 阅读 · 0 评论