ZROJ#397. 【18提高7】模仿游戏(爆搜)
题意
Sol
考试的时候调了1.5h没调出来我真是菜爆了。。。
读完题目后不难发现,每次约束的条件相当于是\(b[((x[i] + i) % N + (i / N) % N) % N] = y[i]\)
因为数据随机,暴力搜\(a_i\)就行了。搜索的时候结合给出的信息判断一下是否合法。
#include<bits/stdc++.h>
#define Pair pair<int, int>
#define MP(x, y) make_pair(x, y)
#define fi first
#define se second
using namespace std;
const int MAXN = 1e6 + 10;
inline int read() {
char c = getchar(); int x = 0, f = 1;
while(c < '0' || c > '9') {if(c == '-') f = -1; c = getchar();}
while(c >= '0' && c <= '9') x = x * 10 + c - '0', c = getchar();
return x * f;
}
int T, N, x[MAXN], y[MAXN];
int a[30], b[30], vis[MAXN];
struct Node {
int po, ti;
};
vector<Node> v[MAXN];
void dfs(int x) {
if(x == N) {
for(int i = 0; i < N; i++) printf("%d ", a[i]); puts("");
for(int i = 0; i < N; i++) printf("%d ", b[i]);
exit(0);
}
for(int i = 0; i < N; i++) {
if(!vis[i]) {
a[x] = i;
bool flag = 0;
for(int j = 0; j < v[x].size(); j++) {
int pos = v[x][j].po, ti = v[x][j].ti;
int date = (a[(pos + ti) % N] + (ti / N) % N) % N;
if((b[date] == -1) || (b[date] == y[ti])) ;
else {flag = 1; break;}
}
if(flag) continue;
vector<int> cha;
for(int j = 0; j < v[x].size(); j++) {
int pos = v[x][j].po, ti = v[x][j].ti;
int date = (a[(pos + ti) % N] + (ti / N) % N) % N;
if(b[date] == -1) cha.push_back(date), b[date] = y[ti];
}
vis[i] = 1;
dfs(x + 1);
vis[i] = 0;
for(int j = 0; j < cha.size(); j++) b[cha[j]] = -1;
}
}
}
int main() {
//freopen("ex_a2.in", "r", stdin);
memset(b, -1, sizeof(b));
T = read(); N = read();
for(int i = 0; i < T; i++) x[i] = read();
for(int i = 0; i < T; i++) y[i] = read();
for(int i = 0; i < T; i++) {
int ax = (x[i] + i) % N, pa = a[ax] + (i / N) % N;
v[ax].push_back((Node){x[i], i});
}
dfs(0);
return 0;
}
ZROJ#397. 【18提高7】模仿游戏(爆搜)的更多相关文章
- 洗礼灵魂,修炼python(62)--爬虫篇—模仿游戏
前言 <模仿游戏>这个电影相信如果你是搞IT的,即使没看过也听过吧?电影讲述了计算机之父——阿兰-图灵的一些在当时来讲算是计算机史里的里程碑事迹了.而[模仿游戏]这个名字咋一看,貌似和电影 ...
- Python利用带权重随机数解决抽奖和游戏爆装备问题
关于带权随机数 为了帮助理解,先来看三类随机问题的对比: 1.已有n条记录,从中选取m条记录,选取出来的记录前后顺序不管. 实现思路:按行遍历所有记录,约隔n/m条取一个数据即可 2.在1类情况下,还 ...
- Java实现 蓝桥杯 算法提高 抽卡游戏
试题 算法提高 抽卡游戏 某个抽卡游戏卡池抽出限定卡的概率为p,该游戏有一个"井"的机制,抽满k次卡后直接送这张限定卡.试求获得这张限定卡需要的期望抽卡次数.输入为一行,用空格隔开 ...
- Java实现 蓝桥杯VIP 算法提高 开灯游戏
算法提高 开灯游戏 时间限制:1.0s 内存限制:256.0MB 问题描述 有9盏灯与9个开关,编号都是1~9. 每个开关能控制若干盏灯,按下一次会改变其控制的灯的状态(亮的变成不亮,不亮变成亮的). ...
- 【 POJ - 1204 Word Puzzles】(Trie+爆搜|AC自动机)
Word Puzzles Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 10782 Accepted: 4076 Special ...
- hdu4536-XCOM Enemy Unknown(爆搜)
XCOM-Enemy Unknown是一款很好玩很经典的策略游戏. 在游戏中,由于未知的敌人--外星人入侵,你团结了世界各大国家进行抵抗.随着游戏进展,会有很多的外星人进攻事件.每次进攻外星人会选择3 ...
- poj1077 Eight【爆搜+Hash(脸题-_-b)】
转载请注明出处,谢谢:http://www.cnblogs.com/KirisameMarisa/p/4298840.html ---by 墨染之樱花 题目链接:http://poj.org/pr ...
- BZOJ 1207: [HNOI2004]打鼹鼠【妥妥的n^2爆搜,dp】
1207: [HNOI2004]打鼹鼠 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 3259 Solved: 1564[Submit][Statu ...
- BZOJ_1224_[HNOI2002]彩票_爆搜+打表
BZOJ_1224_[HNOI2002]彩票_爆搜+打表 Description 某地发行一套彩票.彩票上写有1到M这M个自然数.彩民可以在这M个数中任意选取N个不同的数打圈.每个彩民只能买一张彩票, ...
随机推荐
- C语言实现数组及链表的快速排序
1. 数组快排: 方法一: #include <stdio.h> #include <stdlib.h> //交换 void swap(int *pi, int *pj) { ...
- Xamarin Forms:小马过河,王者归来
因为我媳妇的原因,去年下半年从零开始学习Android原生开发,做了一个答题库app.整体给我的感觉是入门难度不大,前期折腾一番,大部分时间都是花在开发上面,其实任何一门语言都是如此. 今年我又有另一 ...
- winform跨线程问题(有参数和无参数)
1.invoke是同步线程 using System; using System.Collections.Generic; using System.ComponentModel; using Sys ...
- DataRow[]转DataTable
DataRow[]有个扩展方法CopyToDataTable()
- springcloud微服务 总结一
一 什么是微服务 译文: 微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调.互相配合,为用户提供最终价值.每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机 ...
- 【转】idea project中导入其他文件夹下的模块,可能出现java.io.FileNotFoundException: XXX.xml
在一个project 中导入一个java 模块, 我要执行该模块的main函数 ,在main函数中有一个 FileReader(“generatorConfig.xml”) 而generatorCon ...
- Python-删除列表中重复元素的方法
1.set()方法 x = [1,2,3,4,5,1] y = list(set(x)) print(y) ``` [1, 2, 3, 4, 5] ``` 2. x = ['b','c','d','b ...
- OJ 21651::Cow Hurdles(佛罗一德的变式)
Description Farmer John wants the cows to prepare for the county jumping competition, so Bessie and ...
- HDU - 2147 博弈 P/N分析
结论题,很显然和奇偶有关 PS.尝试用dfs写出PN表写崩了 #include<iostream> #include<algorithm> #include<cstdio ...
- matlab实用教程
苏金明.2005.电子工业 1 语句末尾加 : 可以不显示到屏. who 查看变量 whos 列出变量信息 exist t 判断变量是否在空间中. help 函数 doc 函数 : doc f ...