結果
問題 | No.53 悪の漸化式 |
ユーザー |
![]() |
提出日時 | 2015-03-01 02:41:51 |
言語 | C#(csc) (csc 3.9.0) |
結果 |
AC
|
実行時間 | 27 ms / 5,000 ms |
コード長 | 3,814 bytes |
コンパイル時間 | 859 ms |
コンパイル使用メモリ | 112,228 KB |
実行使用メモリ | 26,964 KB |
最終ジャッジ日時 | 2024-06-24 00:27:53 |
合計ジャッジ時間 | 2,088 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 20 |
コンパイルメッセージ
Microsoft (R) Visual C# Compiler version 3.9.0-6.21124.20 (db94f4cc) Copyright (C) Microsoft Corporation. All rights reserved.
ソースコード
using System;using System.Collections.Generic;using System.Collections;using System.Linq;using System.Text;using System.Numerics;using sc = Scanner;class Program{static void Main(string[] args){Solve();#if DEBUGSystem.Console.WriteLine("続行するには何かキーを押してください...");System.Console.ReadKey();#endif}/// <summary>/// ここでとく/// </summary>static void Solve(){int n = sc.NextInt();if (n==0){Console.WriteLine(4);return;}double answer = 3;for (int i = 1; i < n; i++){answer *= 0.75;}Console.WriteLine(answer);/* 4^(k-1)A_k = 3^k が数学的帰納法によって証明できる(k >= 0) 0でもなぜかいけてる dpには4^k-1-1A_kが格納できてるBigInteger[] dp = new BigInteger[n+10];dp[0] = 4;dp[1] = 3;dp[2] = 9;BigInteger s1 = 1;BigInteger s2 = 4;for (int i = 3; i < n+1; i++){dp[i] = 19 * dp[i - 1] - 12*4*dp[i - 2];s1 *= 4;s2 *= 4;}BigInteger p = 4;for (int i = 2; i < n; i++){#if DEBUGConsole.WriteLine();#endif}*/#if DEBUGConsole.WriteLine("local check"); // Visual Studioのローカル変数チェック用 MainにいくとSolve内のローカル変数消えちゃう#endif}}/// <summary>/// Java風のスキャナー,自作(某最速の人を参考)/// </summary>public static class Scanner{public static string NextString(){string tmp = "";while (true){string readData = char.ConvertFromUtf32(Console.Read());if (readData == " " || readData == "\n")break;tmp += readData;}return tmp;}public static string[] NextStrArray(){return Console.ReadLine().Split(' ');}public static long[] NextLongArray(){string[] s = NextStrArray();long[] a = new long[s.Length];for (int i = 0; i < a.Length; i++){a[i] = long.Parse(s[i]);}return a;}public static int[] NextIntArray(){string[] s = NextStrArray();int[] a = new int[s.Length];for (int i = 0; i < a.Length; i++){a[i] = int.Parse(s[i]);}return a;}public static int NextInt(){string tmp = "";while (true){string readData = char.ConvertFromUtf32(Console.Read());if (readData == " " || readData == "\n")break;tmp += readData;}return int.Parse(tmp);}public static double NextDouble(){string tmp = "";while (true){string readData = char.ConvertFromUtf32(Console.Read());if (readData == " " || readData == "\n")break;tmp += readData;}return double.Parse(tmp);}public static long NextLong(){string tmp = "";while (true){string readData = char.ConvertFromUtf32(Console.Read());if (readData == " " || readData == "\n")break;tmp += readData;}return long.Parse(tmp);}public static double[] NextDoubleArray(){string[] s = NextStrArray();double[] a = new double[s.Length];for (int i = 0; i < a.Length; i++){a[i] = double.Parse(s[i]);}return a;}}