题意与分析

这题意思是这样的:在正方体的六面镶嵌给定颜色的宝石(相同颜色不区分),然后问最多有几种彼此不等价(即各种旋转过后看起来一致)的方案。

其实可以乱搞,因为范围只有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)的更多相关文章

  1. 「日常训练」Watering Flowers(Codeforces Round #340 Div.2 C)

    题意与分析 (CodeForces 617C) 题意是这样的:一个花圃中有若干花和两个喷泉,你可以调节水的压力使得两个喷泉各自分别以\(r_1\)和\(r_2\)为最远距离向外喷水.你需要调整\(r_ ...

  2. 「日常训练」Alternative Thinking(Codeforces Round #334 Div.2 C)

    题意与分析 (CodeForces - 603A) 这题真的做的我头疼的不得了,各种构造样例去分析性质... 题意是这样的:给出01字符串.可以在这个字符串中选择一个起点和一个终点使得这个连续区间内所 ...

  3. 「日常训练」More Cowbell(Codeforces Round #334 Div.2 B)

    题意与分析(CodeForces 604B) 题意是这样的:\(n\)个数字,\(k\)个盒子,把\(n\)个数放入\(k\)个盒子中,每个盒子最多只能放两个数字,问盒子容量的最小值是多少(水题) 不 ...

  4. 「日常训练」Ice Cave(Codeforces Round 301 Div.2 C)

    题意与分析(CodeForces 540C) 这题坑惨了我....我和一道经典的bfs题混淆了,这题比那题简单. 那题大概是这样的,一个冰塔,第一次踩某块会碎,第二次踩碎的会掉落.然后求可行解. 但是 ...

  5. 「日常训练」School Marks(Codeforces Round 301 Div.2 B)

    题意与分析(CodeForces 540B) 题意大概是这样的,有一个考试鬼才能够随心所欲的控制自己的考试分数,但是有两个限制,第一总分不能超过一个数,不然就会被班里学生群嘲:第二分数的中位数(科目数 ...

  6. 「日常训练」The Intriguing Obsession(CodeForces Round #439 Div.2 C)

    2018年11月30日更新,补充了一些思考. 题意(CodeForces 869C) 三堆点,每堆一种颜色:连接的要求是同色不能相邻或距离必须至少3.问对整个图有几种连接方法,对一个数取模. 解析 要 ...

  7. 「日常训练」Regular Bridge(Codeforces Round 306 Div.2 D)

    题意与分析 图论基础+思维题. 代码 #include <bits/stdc++.h> #define MP make_pair #define PB emplace_back #defi ...

  8. 「日常训练」Two Substrings(Codeforces Round 306 Div.2 A)

    题意与分析 一道非常坑的水题.分析醒了补. 代码 #include <bits/stdc++.h> #define MP make_pair #define PB emplace_back ...

  9. 「日常训练」ZgukistringZ(Codeforces Round #307 Div. 2 B)

    题意与分析(CodeForces 551B) 这他妈哪里是日常训练,这是日常弟中弟. 题意是这样的,给出一个字符串A,再给出两个字符串B,C,求A中任意量字符交换后(不限制次数)能够得到的使B,C作为 ...

随机推荐

  1. Django之模板配置(template)

    Django模板系统 官方文档 jinja2模块中文 jinja2模块官方 常用语法 只需要记两种特殊符号: {{  }}和 {% %} 变量相关的用{{}},逻辑相关的用{%%}. 变量 在Djan ...

  2. debian 7 linux 安装jdk出现Error occurred during initialization of VM java/lang/NoClassDefFoun

    debian 7 linux 安装jdk出现Error occurred during initialization of VM java/lang/NoClassDefFoun 这两天一直研究lin ...

  3. BZOJ 2424 订货 最小费用流

    题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=2424 题目大意: 某公司估计市场在第i个月对某产品的需求量为Ui,已知在第i月该产品的 ...

  4. HDU5343:MZL's Circle Zhou(SAM,记忆化搜索DP)

    Description Input Output Sample Input Sample Output Solution 题意:给你两个串,分别从两个里面各选出一个子串拼到一起,问能构成多少个本质不同 ...

  5. sed 以及 awk用法

    sed 格式 sed[options] "script" FILE.... 选项: -n:静默模式,不输出模式空间内的内容:默认打印空间模式的内容 -r:扩展的正则表达式 -f 文 ...

  6. Win10右键添加获取管理员权限

    在win10中,还是和WIN7/8一样很多文件被设置权限我们打不开,但很多时候我们还是要打开这些文件夹的,尤其是数据恢复和电脑维护优化时.于是乎我们就有必要获取管理员权限.本人隆重退出完美解决方法. ...

  7. Linux服务器上安装JDK小白教程

    一.环境 VMware12 Pro CentOS-6.7-i386-bin-DVD1 jdk-8u151-linux-i586 二.详细安装步骤 前提:需要卸载自己Linux上的jdk rpm -qa ...

  8. Python自动化之ajax返回表单验证的错误信息和序列化扩展

    form内置序列化错误 如果使用form提交数据的时候,可以直接返回错误信息到模板里面进行渲染 但是如果使用ajax处理呢 from django import forms from django.f ...

  9. 关于C#的静态类和静态构造函数

    静态构造函数是C#的一个新特性,其实好像很少用到.不过当我们想初始化一些静态变量的时候就需要用到它了.这个构造函数是属于类的,而不是属于哪里实例的,就是说这个构造函数只会被执行一次.也就是在创建第一个 ...

  10. 数字电路中应避免产生不必要的锁存器 Latch

    锁存器(Latch)是数字逻辑电路中很重要的一种基本电路,常见的锁存器包括三个端口:数据输入口.数据输出口.使能端.当使能端为高电平时,输入口的数据直接送到输出口,此时输入输出口可以看成是直接连通的: ...