【Codeforces 375A】Divisible by Seven
【链接】 我是链接,点我呀:)
【题意】
让你把一个包含数字1,6,8,9的数字重新组合,使得组合成的数字能被7整除
【题解】
我们先提取出来1,6,8,9各1个
然后把剩余的len-4个数字除了0之外放在前面
那么这len-4个除了0之外的数字组成的十进制数字对7的取余结果肯定是0~6之间。
然后我们用这个取余结果,和1,6,8,9的所有全排列一个一个去试,尝试把排列出来的结果放在这len-4个数字的后面
最后发现取余结果为0~6都能找到一个1,6,8,9的排列,使得它放在他们后面,然后取余结果为0
最后把剩余的0放在1,6,8,9的后面就好。
【代码】
import java.io.*;
import java.util.*;
public class Main {
static InputReader in;
static PrintWriter out;
public static void main(String[] args) throws IOException{
//InputStream ins = new FileInputStream("E:\\rush.txt");
InputStream ins = System.in;
in = new InputReader(ins);
out = new PrintWriter(System.out);
//code start from here
new Task().solve(in, out);
out.close();
}
static int N = 50000;
static class Task{
int cnt[] = new int[10];
int a[] = {0,1,6,8,9};
int b[] = new int[10];
boolean bo[] = new boolean[5];
int n;
String s;
int cur = 0;
boolean dfs(int dep,int now) {
if (dep==5) {
int temp = now;
for (int i = 1;i <= 4;i++) {
temp = temp*10 + b[i];
temp = temp%7;
}
if (temp==0) {
for (int i = 1;i <= 4;i++) {
out.print(b[i]);
}
return true;
}
return false;
}
for (int i = 1;i <= 4;i++)
if (!bo[i]) {
bo[i] = true;
b[dep] = a[i];
if (dfs(dep+1,now)) return true;
bo[i] = false;
}
return false;
}
public void solve(InputReader in,PrintWriter out) {
s = in.next();
for (int i = 0;i < (int)s.length();i++) {
int key = s.charAt(i)-'0';
if (key==1 && cnt[1]==0) {
cnt[1] = 1;
}else if (key==6 && cnt[6]==0){
cnt[6] = 1;
}else if (key==8 && cnt[8]==0) {
cnt[8] = 1;
}else if (key==9 && cnt[9]==0) {
cnt[9] = 1;
}else {
cnt[key]++;
if (key!=0) {
out.print(key);
cur = cur * 10 + key;
cur = cur % 7;
}
}
}
dfs(1,cur);
for (int i = 1;i <= cnt[0];i++) {
out.print(0);
}
}
}
static class InputReader{
public BufferedReader br;
public StringTokenizer tokenizer;
public InputReader(InputStream ins) {
br = new BufferedReader(new InputStreamReader(ins));
tokenizer = null;
}
public String next(){
while (tokenizer==null || !tokenizer.hasMoreTokens()) {
try {
tokenizer = new StringTokenizer(br.readLine());
}catch(IOException e) {
throw new RuntimeException(e);
}
}
return tokenizer.nextToken();
}
public int nextInt() {
return Integer.parseInt(next());
}
}
}
【Codeforces 375A】Divisible by Seven的更多相关文章
- 【codeforces 415D】Mashmokh and ACM(普通dp)
[codeforces 415D]Mashmokh and ACM 题意:美丽数列定义:对于数列中的每一个i都满足:arr[i+1]%arr[i]==0 输入n,k(1<=n,k<=200 ...
- 【20.23%】【codeforces 740A】Alyona and copybooks
time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...
- 【34.88%】【codeforces 569C】Primes or Palindromes?
time limit per test3 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...
- 【codeforces 546D】Soldier and Number Game
time limit per test3 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...
- 【codeforces 707E】Garlands
[题目链接]:http://codeforces.com/contest/707/problem/E [题意] 给你一个n*m的方阵; 里面有k个联通块; 这k个联通块,每个连通块里面都是灯; 给你q ...
- 【codeforces 707C】Pythagorean Triples
[题目链接]:http://codeforces.com/contest/707/problem/C [题意] 给你一个数字n; 问你这个数字是不是某个三角形的一条边; 如果是让你输出另外两条边的大小 ...
- 【codeforces 709D】Recover the String
[题目链接]:http://codeforces.com/problemset/problem/709/D [题意] 给你一个序列; 给出01子列和10子列和00子列以及11子列的个数; 然后让你输出 ...
- 【codeforces 709B】Checkpoints
[题目链接]:http://codeforces.com/contest/709/problem/B [题意] 让你从起点开始走过n-1个点(至少n-1个) 问你最少走多远; [题解] 肯定不多走啊; ...
- 【codeforces 709C】Letters Cyclic Shift
[题目链接]:http://codeforces.com/contest/709/problem/C [题意] 让你改变一个字符串的子集(连续的一段); ->这一段的每个字符的字母都变成之前的一 ...
随机推荐
- (博弈论)51NOD 1066 Bash游戏
有一堆石子共有N个.A B两个人轮流拿,A先拿.每次最少拿1颗,最多拿K颗,拿到最后1颗石子的人获胜.假设A B都非常聪明,拿石子的过程中不会出现失误.给出N和K,问最后谁能赢得比赛. 例如N = 3 ...
- Python安装第三方包(setup.py)
在github上下载了records文件到本地. 解压文件 cmd切换到文件setup.py的目录下 先执行 python setup.py build 再执行python setup.py inst ...
- 385 Mini Parser 迷你解析器
Given a nested list of integers represented as a string, implement a parser to deserialize it.Each e ...
- [转]Paging, Searching and Sorting in ASP.Net MVC 5
本文转自:http://www.c-sharpcorner.com/UploadFile/4b0136/perform-paging-searching-sorting-in-Asp-Net-mvc- ...
- Spring.Net学习笔记(5)-集合注入
一.开发环境 系统:Win10 编译器:VS2013 .net版本:.net framework4.5 二.涉及程序集 Spring.Core.dll 1.3.1 Common.Loggin.dll ...
- python自动化--接口请求及封装
基于http协议,最常用的是GET和POST两种方法. 接口文档需要包含哪些信息: 接口名称接口功能接口地址支持格式 json/xml请求方式请求示例请求参数(是否必填.数据类型.传递参数格式)返回参 ...
- Android基础TOP6_1:FrameLyayout和ImageView制作层叠图片
Activity: <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns ...
- 解决:未能加载文件或程序集“System.Web.Http, Version=5.2.4.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)
今天发布web API,调用接口报错了:未能加载文件或程序集“System.Web.Http, Version=5.2.4.0, Culture=neutral, PublicKeyToken=31b ...
- Angular——自定义过滤器
基本介绍 除了使用AngularJS内建过滤器外,还可以根业务需要自定义过滤器,通过模块对象实例提供的filter方法自定义过滤器. 基本使用 (1)input是将绑定的数据以参数的形式传入 (2)i ...
- Codeforces_766_D_(并查集)
D. Mahmoud and a Dictionary time limit per test 4 seconds memory limit per test 256 megabytes input ...