HDU 6043(KazaQ's Socks) 规律题 Java
来源:互联网 发布:2016光棍节淘宝交易额 编辑:程序博客网 时间:2024/06/06 00:19
2017 Multi-University Training Contest - Team 1 1011题
找规律,分情况!!!
import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.io.PrintWriter;import java.math.BigInteger;import java.util.Scanner;/** * 题意:有 numOfSocks 双袜子序号分别为 1~numOfSocks,每天早上穿序号最小的那双,每天晚上放到篮子里, * 当穿最后一双袜子的时候,会洗篮子里面的袜子(当天就干),问第 day 天穿的哪双袜子。 * * 分析:找规律。 * 比如,输入的用例:3 7 * 每天穿的袜子编号:1 2 3 1 2 1 3 1 2 1 3 * 其中发现:1 2 3 之后的都是 1 2 、 1 3 , 也就是说在穿第 2/3 双袜子的那一天才洗袜子。 * 又比如: 4 9 * 每天穿的袜子编号: 1 2 3 4 1 2 3 1 2 4 1 2 3 * 其中又发现:1 2 3 4 之后的都是 1 2 3 、 1 2 4,也就是说在穿第 3/4 双袜子的那一天才洗袜子。 * 也就能说明了只有在穿第 numOfSocks/numOfSocks-1 双袜子的那一天,才洗袜子。 * 更进一步说明:numOfSocks 和 numOfSocks-1 是轮流来的。 * * 解决: * 1、当 day <= numOfSocks 时,直接输出 day * 2、当 day > numOfSocks 时,分以下两种情况: * ①、当 (day-numOfSocks) % (numOfSocks-1) == 0 时, * i、(day-numOfSocks)/(numOfSocks-1) == 偶数时,输出 numOfSocks * ii、(day-numOfSocks)/(numOfSocks-1) == 奇数时,输出 numOfSocks-1 * ②、否则输出 (day-numOfSocks) % (numOfSocks-1). * * @author TinyDolphin * */public class Main { public static void main(String[] args) throws IOException { Scanner in = new Scanner(new BufferedReader(new InputStreamReader(System.in))); PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out))); BigInteger numOfSocks; BigInteger day; int count = 0; while (in.hasNext()) { numOfSocks = in.nextBigInteger(); day = in.nextBigInteger(); out.print("Case #" + (++count) + ": "); if (day.compareTo(numOfSocks) <= 0) { out.println(day); } else { if ((day.subtract(numOfSocks)).mod(numOfSocks.subtract(BigInteger.valueOf(1))) .compareTo(BigInteger.valueOf(0)) != 0) { out.println((day.subtract(numOfSocks)).mod(numOfSocks.subtract(BigInteger.valueOf(1)))); } else { if ((day.subtract(numOfSocks)).divide(numOfSocks.subtract(BigInteger.valueOf(1))) .mod(BigInteger.valueOf(2)).compareTo(BigInteger.valueOf(0)) == 0) { out.println(numOfSocks); } else { out.println(numOfSocks.subtract(BigInteger.valueOf(1))); } } } } out.flush(); }}
阅读全文
0 0
- HDU 6043(KazaQ's Socks) 规律题 Java
- hdu 6043 KazaQ's Socks(规律)
- HDU 6043 KazaQ's Socks 找规律
- HDU 6043 KazaQ's Socks 【规律】
- HDU 6043 KazaQ's Socks【规律】
- HDU 6043 KazaQ's Socks(周期)
- HDU 6043 KazaQ's Socks(水~)
- HDU 6043 KazaQ's Socks
- hdu 6043 KazaQ's Socks
- HDU 6043 KazaQ's Socks
- HDU 6043 KazaQ's Socks
- 2017杭电多校联赛 1011 KazaQ's Socks(找规律)HDU 6043
- HDU-KazaQ's Socks
- KazaQ's Socks HDU
- HDU6043 KazaQ's Socks【规律】
- HDU 6043 KazaQ's Socks(暑期训练1011)
- (数学)HDU 6043 KazaQ's Socks
- 【多校训练】hdu 6043 KazaQ's Socks
- poj 3264
- js学习笔记1
- java基础之常量池和异常
- JavaScript 处理 JSON
- Java 与数据库相同的md5加密算法
- HDU 6043(KazaQ's Socks) 规律题 Java
- AngularJS 输入验证
- PostgreSQL Java tutorial
- PHP 处理 JSON
- 外观模式(Facade Pattern)
- JavaScript的基本概念及程序设计基础
- 浅析C/S、B/S与P2P架构
- POJ 2115 C Looooops <扩展欧几里得算法>
- Java 处理 JSON