西安邀请赛-L(打表找规律)
题目链接:https://nanti.jisuanke.com/t/39279
题意:给定n个不同的数表示的序列,定义两种操作:1. 交换前一半和后一半(如果有奇数个,则中间的不管)。2. 交换每个偶数位和它之前的数(如果有奇数个,最后一个不管)。问通过这两种操作,可以得到多少个不同的序列。
思路:典型的打表找规律的题,下次比赛吸取教训。打表的代码如下:
#include<cstdio>
using namespace std; int a[],b[];
int n,ans; bool check(){
bool flag=;
for(int i=;i<=n;++i)
if(a[i]!=b[i]){
flag=;
break;
}
return flag;
} int main(){
for(n=;n<=;++n){
int hf=n/;
ans=;
for(int i=;i<=n;++i)
a[i]=i,b[i]=i;
while(){
for(int i=;i<=hf;++i){
int tmp=b[i];
b[i]=b[n-hf+i];
b[n-hf+i]=tmp;
}
if(check()) break;
++ans;
for(int i=;i<=n-;i+=){
int tmp=b[i];
b[i]=b[i+];
b[i+]=tmp;
}
if(check()) break;
++ans;
}
printf("%d:%d\n",n,ans+);
}
return ;
}
然后就可以找到规律了:
n%4==0: ans=4
n%4==1: if(n==1) ans=1
else ans=2*n
n%4==2: ans=n
n%4==3: if(n==3) ans=6
else ans =12
AC代码:
#include<cstdio>
using namespace std; int a[],b[];
int n,ans; bool check(){
bool flag=;
for(int i=;i<=n;++i)
if(a[i]!=b[i]){
flag=;
break;
}
return flag;
} int main(){
for(n=;n<=;++n){
int hf=n/;
ans=;
for(int i=;i<=n;++i)
a[i]=i,b[i]=i;
while(){
for(int i=;i<=hf;++i){
int tmp=b[i];
b[i]=b[n-hf+i];
b[n-hf+i]=tmp;
}
if(check()) break;
++ans;
for(int i=;i<=n-;i+=){
int tmp=b[i];
b[i]=b[i+];
b[i+]=tmp;
}
if(check()) break;
++ans;
}
printf("%d:%d\n",n,ans+);
}
return ;
}
西安邀请赛-L(打表找规律)的更多相关文章
- 计蒜客 39279.Swap-打表找规律 (The 2019 ACM-ICPC China Shannxi Provincial Programming Contest L.) 2019ICPC西安邀请赛现场赛重现赛
Swap There is a sequence of numbers of length nn, and each number in the sequence is different. Ther ...
- codeforces#1090 D. New Year and the Permutation Concatenation(打表找规律)
题意:给出一个n,生成n的所有全排列,将他们按顺序前后拼接在一起组成一个新的序列,问有多少个长度为n的连续的子序列和为(n+1)*n/2 题解:由于只有一个输入,第一感觉就是打表找规律,虽然表打出来了 ...
- Tetrahedron(Codeforces Round #113 (Div. 2) + 打表找规律 + dp计数)
题目链接: https://codeforces.com/contest/166/problem/E 题目: 题意: 给你一个三菱锥,初始时你在D点,然后你每次可以往相邻的顶点移动,问你第n步回到D点 ...
- Codeforces Round #493 (Div. 2)D. Roman Digits 第一道打表找规律题目
D. Roman Digits time limit per test 1 second memory limit per test 256 megabytes input standard inpu ...
- 【ZOJ】3785 What day is that day? ——KMP 暴力打表找规律
转自:http://www.cnblogs.com/kevince/p/3887827.html 首先声明一下,这里的规律指的是循环,即找到最小循环周期. 这么一说大家心里肯定有数了吧,“不就是nex ...
- Nowcoder 练习赛 17 C 操作数 ( k次前缀和、矩阵快速幂打表找规律、组合数 )
题目链接 题意 : 给定长度为n的数组a,定义一次操作为: 1. 算出长度为n的数组s,使得si= (a[1] + a[2] + ... + a[i]) mod 1,000,000,007: 2. ...
- hdu 3032 Nim or not Nim? (SG函数博弈+打表找规律)
Nim or not Nim? Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Sub ...
- HDU 5753 Permutation Bo (推导 or 打表找规律)
Permutation Bo 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5753 Description There are two sequen ...
- HDU 4861 Couple doubi (数论 or 打表找规律)
Couple doubi 题目链接: http://acm.hust.edu.cn/vjudge/contest/121334#problem/D Description DouBiXp has a ...
随机推荐
- jQuery.post(url, [data], [callback], [type])
jQuery.post(url, [data], [callback], [type]) 概述 通过远程 HTTP POST 请求载入信息. 这是一个简单的 POST 请求功能以取代复杂 $.ajax ...
- jquery checked选择器 语法
jquery checked选择器 语法 作用::checked 选择器选取所有选中的复选框或单选按钮.直线电机参数 语法:$(":checked") jquery checked ...
- 判断一个ip地址合法性(基础c,不用库函数)
#include <stdio.h> int judge(char *strIp); int main() { ]; ) { scanf("%s", a); == ju ...
- 51 Nod1042 数字0到9的数量
1042 数字0-9的数量 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 收藏 关注 给出一段区间a-b,统计这个区间内0-9出现的次数. 比如 10-19 ...
- linux 动态库文件stripped属性理解
[file命令not stripped] UNIX下*.o和*.so文件显示的stripped和not stripped是什么意思? 表示符号表是否被清除. 在centos 6.2下用file命令查看 ...
- 20165213 Exp6 信息搜集与漏洞扫描
信息搜集与漏洞扫描 一. 实践内容 (1)各种搜索技巧的应用 利用Google Hacking Datebase搜索. 尝试搜索http相关的漏洞,可以看到漏洞的相关信息. 也可以使用过滤器进行过滤, ...
- java判断一个字符串是否为数字型
摘自:https://blog.csdn.net/qq_42133100/article/details/92158507 方法一:用JAVA自带的函数(只能判断正整数 ) 2 public stat ...
- H264之基础篇
1. H264 基础概念 在 H.264/AVC 视频编码标准中,整个系统框架划分为如下两个层面: 视频编码层(VCL):VCL 数据即被压缩编码后的视频数据序列,负责有效表示视频数据的内容: 网络抽 ...
- omniplan
汉化版安装包 下载链接:https://pan.baidu.com/s/104ZddPtNWTHyEMZx90agKw 密码:qizl 序列号 Name: Appked Serial: I ...
- [学习笔记] MRF 入门
MRF马尔科夫随机场入门 Intro MRF是一种广泛应用于图像分割的模型,当然我看到MRF的时候并不是因为分割,而是在图像生成领域,有的paper利用MRF模型来生成图像,因此入门一下MRF,并以分 ...