Diff
checker
テキスト
テキスト
画像
ドキュメント
Excel
フォルダ
Legal
Enterprise
デスクトップ
料金
ログイン
Diffchecker デスクトップのダウンロード
テキスト比較
2 つのテキスト ファイルの違いを見つける
ツール
履歴
ライブエディター
未変更行を折りたたむ
折り返しなし
レイアウト
分割
統合
比較精度
スマート
単語
文字
シンタックスハイライト
構文を選択
無視
テキスト変換
最初の差分へ移動
入力を編集
Diffchecker Desktop
Diffcheckerを実行する最も安全な方法。Diffchecker Desktopアプリを入手:あなたの差分はコンピューターから出ることはありません!
Desktopを入手
Untitled diff
作成日
9 年前
差分は期限切れになりません
クリア
エクスポート
共有
説明
15 削除
行
合計
削除
文字
合計
削除
この機能を引き続き使用するには、アップグレードしてください
Diff
checker
Pro
価格を見る
49 行
すべてコピー
12 追加
行
合計
追加
文字
合計
追加
この機能を引き続き使用するには、アップグレードしてください
Diff
checker
Pro
価格を見る
49 行
すべてコピー
#include <stdio.h>
#include <stdio.h>
#include <stack>
#include <stack>
#include <map>
#include <map>
#include <string.h>
#include <string.h>
#include <string>
#include <string>
#include <iostream>
#include <iostream>
#include <algorithm>
#include <algorithm>
#include <iomanip>
#include <iomanip>
#include <math.h>
#include <math.h>
#include <vector>
#include <vector>
#include <set>
#include <set>
#include <queue>
#include <queue>
#include <functional>
#include <functional>
using namespace std;
using namespace std;
#define ll long long
#define ll long long
#define mp make_pair
#define mp make_pair
#define pb push_back
#define pb push_back
//#define ld long double
//#define ld long double
const double sn = 1e-6;
const double sn = 1e-6;
ll mod = 1000000007;
ll mod = 1000000007;
ll dp[5000005];
ll dp[5000005];
コピー
コピー済み
コピー
コピー済み
ll
t, l, r;
int
t, l, r;
int main() {
int main() {
コピー
コピー済み
コピー
コピー済み
scanf("%
I64d%I64d%I64d
", &t, &l, &r);
scanf("%
d %d %d
", &t, &l, &r);
ll ans = 0;
ll ans = 0;
コピー
コピー済み
コピー
コピー済み
for (
ll
i = 2; i <= r; i++) {
for (
int
i = 2; i <= r; i++) {
dp[i] = LLONG_MAX;
dp[i] = LLONG_MAX;
}
}
コピー
コピー済み
コピー
コピー済み
for (
ll
i = 2; i <= r; i++) {
for (
int
i = 2; i <= r; i++) {
dp[i] = min(
dp[i],
((i*
(i - 1)
)
/ 2
)
);
dp[i] = min(
dp[i],
1ll * i *
(i - 1)
/ 2
);
コピー
コピー済み
コピー
コピー済み
for (
ll
j = 2 * i; j <= r; j += i) {
for (
int
j = 2 * i; j <= r; j += i) {
ll
t = j/i;
int
t = j/i;
ll val =
((t*
(t - 1)
)
/ 2
)
;
ll val =
1ll * t *
(t - 1)
/ 2
;
val = (val * i);
val = (val * i);
dp[j] = min(dp[j], (val + dp[i]));
dp[j] = min(dp[j], (val + dp[i]));
}
}
}
}
ll ti = 1;
ll ti = 1;
コピー
コピー済み
コピー
コピー済み
for (
ll
i = 0; i <= r - l; i++) {
for (
int
i = 0; i <= r - l; i++) {
ll v1 = ti
%mod
, v2 = dp[i+l]%mod;
ll v1 = ti
, v2 = dp[i+l]%mod;
ll v3 =
(v1*v2) % mod
;
ll v3 =
v1 * v2
;
ans = (ans + v3) % mod;
ans = (ans + v3) % mod;
ti = (ti*t) % mod;
ti = (ti*t) % mod;
}
}
printf("%I64d\n", ans%mod);
printf("%I64d\n", ans%mod);
return 0;
return 0;
}
}
保存された差分
原文
ファイルを開く
#include <stdio.h> #include <stack> #include <map> #include <string.h> #include <string> #include <iostream> #include <algorithm> #include <iomanip> #include <math.h> #include <vector> #include <set> #include <queue> #include <functional> using namespace std; #define ll long long #define mp make_pair #define pb push_back //#define ld long double const double sn = 1e-6; ll mod = 1000000007; ll dp[5000005]; ll t, l, r; int main() { scanf("%I64d%I64d%I64d", &t, &l, &r); ll ans = 0; for (ll i = 2; i <= r; i++) { dp[i] = LLONG_MAX; } for (ll i = 2; i <= r; i++) { dp[i] = min(dp[i], ((i*(i - 1)) / 2)); for (ll j = 2 * i; j <= r; j += i) { ll t = j/i; ll val = ((t*(t - 1)) / 2); val = (val * i); dp[j] = min(dp[j], (val + dp[i])); } } ll ti = 1; for (ll i = 0; i <= r - l; i++) { ll v1 = ti%mod, v2 = dp[i+l]%mod; ll v3 = (v1*v2) % mod; ans = (ans + v3) % mod; ti = (ti*t) % mod; } printf("%I64d\n", ans%mod); return 0; }
変更されたテキスト
ファイルを開く
#include <stdio.h> #include <stack> #include <map> #include <string.h> #include <string> #include <iostream> #include <algorithm> #include <iomanip> #include <math.h> #include <vector> #include <set> #include <queue> #include <functional> using namespace std; #define ll long long #define mp make_pair #define pb push_back //#define ld long double const double sn = 1e-6; ll mod = 1000000007; ll dp[5000005]; int t, l, r; int main() { scanf("%d %d %d", &t, &l, &r); ll ans = 0; for (int i = 2; i <= r; i++) { dp[i] = LLONG_MAX; } for (int i = 2; i <= r; i++) { dp[i] = min( dp[i], 1ll * i * (i - 1) / 2 ); for (int j = 2 * i; j <= r; j += i) { int t = j/i; ll val = 1ll * t * (t - 1) / 2; val = (val * i); dp[j] = min(dp[j], (val + dp[i])); } } ll ti = 1; for (int i = 0; i <= r - l; i++) { ll v1 = ti, v2 = dp[i+l]%mod; ll v3 = v1 * v2; ans = (ans + v3) % mod; ti = (ti*t) % mod; } printf("%I64d\n", ans%mod); return 0; }
違いを見つける