タイトル
サイン水問題
#include <iostreamの> する#include <CStringの> する#include < ストリング > の#include <アルゴリズム> の#include <マップ> の#include <ベクトル> の#include <cstdioを> 使用して 名前空間STDを、 CONST INT N = 105 。 int型のmain(){ int型、nは 文字列sの。 cinを >> N; cinを >> 秒; int型私は、 int型 NUM1 = 0、NUM2 = 0 ; 以下のための式(I = 0、I <s.sizeを(); I ++ ){ もし、(S [I] == ' L ' ) NUM1 ++ ; 他 NUM2 ++ ; } coutの << num2の+ num1を+ 1 << てendl; }
Bタイトル
唯一の質問の意味は、長さが必要であり、最大はできますが、全体の長さは、それは1に変換することができない - n-1の2、および - nは需要。
注答えがマイナスであってもよいこと、大規模なデータは、長い長い開くことを提案しました
#include <iostreamの> する#include <CStringの> する#include < ストリング > の#include <アルゴリズム> の#include <マップ> の#include <ベクトル> の#include <cstdioを> 使用して 名前空間STDを、 const int型 N = 100005 ; const int型 INF = 0x3f3f3f3f 。 typedefの長い 長いLL。 INT S [N]。 INT のmain(){ int型のT。 cinを >> トン。 一方、(t-- ){ memsetの(S、0、はsizeof S)。 INT P [N]。 int型のn; cinを >> N; int型私は、 LL合計 = 0 ; ための式(I = 1 ; iが<= N; iが++ ){ CIN >> P [i]は、 和 + = P [i]は、 } LLフラグ = 0 。 LL ANS = - infファイル。 以下のための(iは= 1 ; I <= N- 1、I ++ ){ フラグ + = P [i]は、 ANS = MAX(ANS、フラグ)。 もし(フラグ< 0 ){ フラグ = 0 。 } } フラグ = 0 。 ための式(I = 2、iが<= N; iが++ ){ フラグ + = P [i]は、 年 = MAX(年齢、フラグ); もし(フラグ< 0 ){ フラグ = 0 。 } } もし(合計> ANS) 裁判所未満 << " YES " << てendl; 他の 裁判所未満 << " NO " << てendl; } }
Cのタイトル
暴力は二つの数字たびアウトの最小公倍数を解決する場合かどうかは、考え方の転換への最小公倍数X、有料の診察を受けました。
式定義LCM(A、B)= A / GCD(a、b)はB *
したがって、/ GCD(A、B)が列挙として使用することができます
入力されたデータは、おそらく素数であることに注意してください
それ以外の場合は、TLE、セクシー素数法と呼ばれる新しい戦術を、学びます、プライム裁判官を加速するほか、必要
原理:各数値は隣接6N 6N、6N + 1,6n + 2,6n + 3,6n + 4,6n + 5と2つだけの素数として表すことができます。
#include <iostreamの> する#include <CStringの> する#include < ストリング > の#include <cmath> の#include <アルゴリズム> の#include <マップ> の#include <ベクトル> の#include <cstdioを> 使用して 名前空間STDを、 const int型 N = 100005 ; const int型 INF = 0x3f3f3f3f 。 typedefの長い 長いLL。 LLのx; LL GCD(-1,11,11- B){ リターン・ B == 0:GCD(B、%の?B)。 } ブール isprime(長い 長いX){ 場合(X <= 3 ) リターン X> 1 。 他{ 場合(X%6 =!1 && X%6 =!5 ) リターン 偽。 他{ 長い 長 K = SQRT(X)。 以下のために(INT iが= 5 ; I <= K、I + = 6 ){ 場合(X%I == 0 || X%(I + 2)==0 ) を返す 偽。 } } } 返す 真; } INT メイン(){ cinを >> X; 私はちゃいます。 もし(x == 1 || isprime(X)) coutの << 1 << " " << X << てendl; 他の{ LL M1 = 1、M2 = X。 以下のための(iは= 1 ; I <= SQRT(X); I ++ ){ 場合(!X%I = 0 ) 続けます。 LL B = X / I。 もし(GCD(B、I)== 1 ){ 場合(B < M2){ M2 = B。 M1 = I; } } } coutの << M1 << " " <<平方メートル<< てendl; } }