Kyopro Library
 
読み取り中…
検索中…
一致する文字列を見つけられません
arithmetic_sum.hpp
[詳解]
1#include"../../kyopro_library/template.hpp"
2
3/// @brief 等差数列
6
7 /// @brief 初項、公差、末項、項数のうち、足りない情報を計算する
8 void normalize() {
9 int undef_cnt=0;
10 if(start==INFL) undef_cnt++;
11 if(goal==INFL) undef_cnt++;
12 if(step==INFL) undef_cnt++;
13 if(length==INFL) undef_cnt++;
14 assert(undef_cnt<=1);
15 if(goal==INFL) goal=start+(length-1)*step;
16 else if(start==INFL) start=goal-(length-1)*step;
17 else if(step==INFL) step=(start==goal)?0:(goal-start)/(length-1);
18 else if(length==INFL) {
19 assert(step!=0);
21 }
22 }
23};
24
25/// @brief 等差数列の和を返す
28 return(ap.start+ap.goal)*ap.length/2;
29}
ll ArithmeticSum(ArithmeticProgression ap)
等差数列の和を返す
void normalize()
初項、公差、末項、項数のうち、足りない情報を計算する
const ll INFL
Definition template.hpp:13