【日常训练】Help Victoria the Wise(Codeforces 99C)
题意与分析
这题意思是这样的:在正方体的六面镶嵌给定颜色的宝石(相同颜色不区分),然后问最多有几种彼此不等价(即各种旋转过后看起来一致)的方案。
其实可以乱搞,因为范围只有720。求出全排列,然后每个旋转很多次,看看彼此可不可能相同,很多次旋转后都相同说明稳了,然后最后统计即可。
这题相当有意思的是复习了全排列的求法,竟然不能一下子想到- -|||
下面还会说下Java里面String与StringBuilder相关的内容:(待补)
代码
/*
* ACM Code => cfr99c.java
* Written by Sam X
* Date: 三月, 19, 2019
* Time: 11:08
*/
import java.util.*;
import java.math.*;
public class cf99c
{
static TreeSet<String> ts = new TreeSet<>();
static HashSet<String> hs = new HashSet<>();
static void Permutation(String obj, String str, int obj_len)
{
if(obj.length()==obj_len)
ts.add(obj);
else for(int i=0;i!=str.length();++i)
Permutation(obj+str.charAt(i), str.substring(0, i)+str.substring(i+1, str.length()), obj_len);
}
public static void main(String args[])
{
Scanner cin = new Scanner(System.in);
String str = cin.next();
Permutation("", str, str.length());
int ans=0;
for(String s:ts)
if(judge(s))
{
hs.add(s); ans++;
}
System.out.println(ans);
cin.close();
}
// 乱搞,启动!
static int maxJudge=114514;
static boolean judge(String str)
{
for(int i=1;i<=maxJudge;++i)
{
if(Math.random()<0.5) str=rotateUp(str);
else str=rotateLeft(str);
if(hs.contains(str))
return false;
}
return true;
}
static String rotateLeft(String str)
{
StringBuilder sb = new StringBuilder();
sb.append(str.charAt(0));
sb.append(str.charAt(2));
sb.append(str.charAt(3));
sb.append(str.charAt(4));
sb.append(str.charAt(1));
sb.append(str.charAt(5));
return sb.toString();
}
static String rotateUp(String str)
{
StringBuilder sb = new StringBuilder();
sb.append(str.charAt(1));
sb.append(str.charAt(5));
sb.append(str.charAt(2));
sb.append(str.charAt(0));
sb.append(str.charAt(4));
sb.append(str.charAt(3));
return sb.toString();
}
}
【日常训练】Help Victoria the Wise(Codeforces 99C)的更多相关文章
- 「日常训练」Watering Flowers(Codeforces Round #340 Div.2 C)
题意与分析 (CodeForces 617C) 题意是这样的:一个花圃中有若干花和两个喷泉,你可以调节水的压力使得两个喷泉各自分别以\(r_1\)和\(r_2\)为最远距离向外喷水.你需要调整\(r_ ...
- 「日常训练」Alternative Thinking(Codeforces Round #334 Div.2 C)
题意与分析 (CodeForces - 603A) 这题真的做的我头疼的不得了,各种构造样例去分析性质... 题意是这样的:给出01字符串.可以在这个字符串中选择一个起点和一个终点使得这个连续区间内所 ...
- 「日常训练」More Cowbell(Codeforces Round #334 Div.2 B)
题意与分析(CodeForces 604B) 题意是这样的:\(n\)个数字,\(k\)个盒子,把\(n\)个数放入\(k\)个盒子中,每个盒子最多只能放两个数字,问盒子容量的最小值是多少(水题) 不 ...
- 「日常训练」Ice Cave(Codeforces Round 301 Div.2 C)
题意与分析(CodeForces 540C) 这题坑惨了我....我和一道经典的bfs题混淆了,这题比那题简单. 那题大概是这样的,一个冰塔,第一次踩某块会碎,第二次踩碎的会掉落.然后求可行解. 但是 ...
- 「日常训练」School Marks(Codeforces Round 301 Div.2 B)
题意与分析(CodeForces 540B) 题意大概是这样的,有一个考试鬼才能够随心所欲的控制自己的考试分数,但是有两个限制,第一总分不能超过一个数,不然就会被班里学生群嘲:第二分数的中位数(科目数 ...
- 「日常训练」The Intriguing Obsession(CodeForces Round #439 Div.2 C)
2018年11月30日更新,补充了一些思考. 题意(CodeForces 869C) 三堆点,每堆一种颜色:连接的要求是同色不能相邻或距离必须至少3.问对整个图有几种连接方法,对一个数取模. 解析 要 ...
- 「日常训练」Regular Bridge(Codeforces Round 306 Div.2 D)
题意与分析 图论基础+思维题. 代码 #include <bits/stdc++.h> #define MP make_pair #define PB emplace_back #defi ...
- 「日常训练」Two Substrings(Codeforces Round 306 Div.2 A)
题意与分析 一道非常坑的水题.分析醒了补. 代码 #include <bits/stdc++.h> #define MP make_pair #define PB emplace_back ...
- 「日常训练」ZgukistringZ(Codeforces Round #307 Div. 2 B)
题意与分析(CodeForces 551B) 这他妈哪里是日常训练,这是日常弟中弟. 题意是这样的,给出一个字符串A,再给出两个字符串B,C,求A中任意量字符交换后(不限制次数)能够得到的使B,C作为 ...
随机推荐
- git五分钟教程
使用Git前,需要先建立一个仓库(repository).您可以使用一个已经存在的目录作为Git仓库或创建一个空目录. 使用您当前目录作为Git仓库,我们只需使它初始化. git init 使用我们指 ...
- WCF自寄宿实现Https绑定
一.WCF配置 1 Address 将服务端发布地址和客户端访问地址都配置为https开始的安全地址.参考如下. <add key="SrvUrl" value=" ...
- 用windows自带的fsutil修改稀疏文件大小成功,但文件内容似乎丢失
fsutil sparse setflag. fsutil sparse setrange 10M对应字节,1G对应字节.. 看文件属性,实际尺寸是小了,但内容似乎也丢了..因为自己把该文件做成虚拟盘 ...
- IKVM.NET入门(1)
IKVM.NET是一个针对Mono和微软.net框架的java实现,其设计目的是在.NET平台上运行java程序.本文将比较详细的介绍这个工具的原理.使用入门(如何java应用转换为.NET应用.如何 ...
- python第五课——流程控制语句
流程控制语句: 分类: 1).顺序结构 2).判断结构解析:如果...否则... 3).循环结构 1.判断结构: 格式分类:三种格式 格式一: ① if 条件表达式: 语句块 ② 执行流程: 计算机会 ...
- ubuntu16.04安装visual-studio-code
微软主页的安装说明,https://code.visualstudio.com/docs/setup/linux 有一点英语基础就能看懂,写的很好,一切以官方文档为主 方法一:可以使用umake ...
- Golang格式化小结
Golang的格式化使用了与c.python等语言类似的风格,但是更加丰富和通用.格式化函数在fmt包中,如:fmt.Printf,fmt.Fprintf,fmt.Sprintf,fmt.Printl ...
- 1818: [Cqoi2010]内部白点
Time Limit: 10 Sec Memory Limit: 64 MB Submit: 1394 Solved: 625 [Submit][Status][Discuss] Descriptio ...
- 20145203盖泽双java实验三 敏捷开发与XP实践
java实验三 敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 实验要求 1.没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器> ...
- C# 生成自签名CA证书
"; string signatureAlgorithm = "SHA1WithRSA"; // Generate RSA key pair var rsaGenerat ...