2021寒假训练(六)
| 题号 | A | B | C | D | E | F | G | H |
| AC | √ | Ο | √ | Ο |
#include <string.h> #include <algorithm> #include <cmath> #include <cstdio> #include <cstdlib> #include <cstring> #include <deque> #include <fstream> #include <iomanip> #include <iostream> #include <iterator> #include <list> #include <map> #include <queue> #include <set> #include <stack> #include <stdexcept> #include <string> #include <vector> using namespace std; typedef long long ll; typedef unsigned long long ull; #define ll long long #define int long long const int maxn = 1e6 + 10; const int inf = 0x3f3f3f3f; const int Base = 131; const ll INF = 1ll << 62; const double PI = acos(-1); const double eps = 1e-7; const int mod = 1e9 + 7; #define PI acos(-1) #define mem(a, b) memset(a, b, sizeof(a)) #define speed { ios::sync_with_stdio(false); cin.tie(0);cout.tie(0);} // inline int gcd(int a, int b) { // while (b ^= a ^= b ^= a %= b); // return a; // } inline ll gcd(ll a, ll b) { return b == 0 ? a : gcd(b, a % b); } long long fastPower(long long base, long long power) { long long result = 1; while (power > 0) { if (power & 1) result = result * base % mod; power >>= 1; base = (base * base) % mod; } return result; } inline ll rd() { ll s = 0, w = 1; char ch = getchar(); while (ch < '0' || ch > '9') { if (ch == '-') w = -1; ch = getchar(); } while (ch >= '0' && ch <= '9') s = s * 10 + ch - '0', ch = getchar(); return s * w; } // int phi(int n){ // int ans = n; // for(int i = 2; i <= sqrt(n); i++){ // if(n % i == 0){ // ans = ans / i * (i - 1); // while(n % i == 0)n /= i; // } // } // if(n > 1) ans = ans / n * (n - 1); // return ans; // } int euler[maxn]; void Euler(){ for(int i=0;i<maxn;i++)euler[i]=i; for(int i=2;i<maxn;i++) if(euler[i]==i) for(int j=i;j<maxn;j+=i) euler[j]=euler[j]/i*(i-1); } int sum[maxn] = {0}; void init(){ Euler(); for(int i = 1; i <= maxn; i++){ sum[i] = sum[i-1] + euler[i]; } } signed main(){ init(); int n; while(~scanf("%lld",&n), n){ printf("%lld\n", sum[n] - 1); } //system("pause"); return 0; }
#include <string.h> #include <algorithm> #include <cmath> #include <cstdio> #include <cstdlib> #include <cstring> #include <deque> #include <fstream> #include <iomanip> #include <iostream> #include <iterator> #include <list> #include <map> #include <queue> #include <set> #include <stack> #include <stdexcept> #include <string> #include <vector> using namespace std; typedef long long ll; typedef unsigned long long ull; #define ll long long #define int long long const int maxn = 1e5 + 10; const int inf = 0x3f3f3f3f; const int Base = 131; const ll INF = 1ll << 62; const double PI = acos(-1); const double eps = 1e-7; const int mod = 2147493647; #define PI acos(-1) #define mem(a, b) memset(a, b, sizeof(a)) #define speed { ios::sync_with_stdio(false); cin.tie(0);cout.tie(0);} // inline int gcd(int a, int b) { // while (b ^= a ^= b ^= a %= b); // return a; // } inline ll gcd(ll a, ll b) { return b == 0 ? a : gcd(b, a % b); } long long fastPower(long long base, long long power) { long long result = 1; while (power > 0) { if (power & 1) result = result * base % mod; power >>= 1; base = (base * base) % mod; } return result; } inline ll rd() { ll s = 0, w = 1; char ch = getchar(); while (ch < '0' || ch > '9') { if (ch == '-') w = -1; ch = getchar(); } while (ch >= '0' && ch <= '9') s = s * 10 + ch - '0', ch = getchar(); return s * w; } int a[maxn], prefix[maxn], index[maxn]; signed main(){ int c, n; while(~scanf("%lld %lld", &c, &n), c || n){ int p = 0; for(int i = 1; i <= n; i++){ a[i] = rd(); prefix[i] = (prefix[i-1] + a[i]) % c; if(prefix[i] == 0) p = i; index[i] = -1; } if(p){ for(int i = 1; i <= p; i++) printf("%lld%c", i, " \n"[i == p]); }else{ for(int i = 1; i <= n; i++){ if(index[prefix[i]] != -1){ for(int j = index[prefix[i]] + 1; j <= i; j++) printf("%lld%c", j," \n"[j == i]); break; }else{ index[prefix[i]] = i; } } } } //system("pause"); return 0; }
#include <string.h> #include <algorithm> #include <cmath> #include <cstdio> #include <cstdlib> #include <cstring> #include <deque> #include <fstream> #include <iomanip> #include <iostream> #include <iterator> #include <list> #include <map> #include <queue> #include <set> #include <stack> #include <stdexcept> #include <string> #include <vector> using namespace std; typedef long long ll; typedef unsigned long long ull; #define ll long long #define int long long const int maxn = 1e6 + 10; const int inf = 0x3f3f3f3f; const int Base = 131; const ll INF = 1ll << 62; const double PI = acos(-1); const double eps = 1e-7; const int mod = 1e9 + 7; #define PI acos(-1) #define mem(a, b) memset(a, b, sizeof(a)) #define speed { ios::sync_with_stdio(false); cin.tie(0);cout.tie(0);} // inline int gcd(int a, int b) { // while (b ^= a ^= b ^= a %= b); // return a; // } inline ll gcd(ll a, ll b) { return b == 0 ? a : gcd(b, a % b); } long long fastPower(long long base, long long power) { long long result = 1; while (power > 0) { if (power & 1) result = result * base % mod; power >>= 1; base = (base * base) % mod; } return result; } inline ll rd() { ll s = 0, w = 1; char ch = getchar(); while (ch < '0' || ch > '9') { if (ch == '-') w = -1; ch = getchar(); } while (ch >= '0' && ch <= '9') s = s * 10 + ch - '0', ch = getchar(); return s * w; } signed main(){ int n, m, k; scanf("%lld %lld %lld",&n ,&m, &k); int l = 1; int r = n * m; while(r >= l){ int mid = (l + r) >> 1; int cnt = 0; for(int i = 1; i <= m ; i++)cnt += min(n, mid / i); if(cnt < k)l = mid + 1; else r = mid - 1; } printf("%lld\n", l); //system("pause"); return 0; }
#include <string.h> #include <algorithm> #include <cmath> #include <cstdio> #include <cstdlib> #include <cstring> #include <deque> #include <fstream> #include <iomanip> #include <iostream> #include <iterator> #include <list> #include <map> #include <queue> #include <set> #include <stack> #include <stdexcept> #include <string> #include <vector> using namespace std; typedef long long ll; typedef unsigned long long ull; #define ll long long #define int long long const int maxn = 1e5 + 10; const int inf = 0x3f3f3f3f; const int Base = 131; const ll INF = 1ll << 62; const double PI = acos(-1); const double eps = 1e-7; const int mod = 1e9 + 7; #define PI acos(-1) #define mem(a, b) memset(a, b, sizeof(a)) #define speed { ios::sync_with_stdio(false); cin.tie(0);cout.tie(0);} // inline int gcd(int a, int b) { // while (b ^= a ^= b ^= a %= b); // return a; // } inline ll gcd(ll a, ll b) { return b == 0 ? a : gcd(b, a % b); } long long fastPower(long long base, long long power) { long long result = 1; while (power > 0) { if (power & 1) result = result * base % mod; power >>= 1; base = (base * base) % mod; } return result; } inline ll rd() { ll s = 0, w = 1; char ch = getchar(); while (ch < '0' || ch > '9') { if (ch == '-') w = -1; ch = getchar(); } while (ch >= '0' && ch <= '9') s = s * 10 + ch - '0', ch = getchar(); return s * w; } int n, k, dp[maxn] = {0}, pre[maxn] = {0}; void init(){ for(int i = 1; i <= maxn; i++){ if(i - k < 0)dp[i]++; else if(i - k == 0)dp[i] = 2; else dp[i] = (dp[i - 1] + dp[i - k]) % mod; pre[i] = (pre[i-1] + dp[i]) % mod; } } signed main(){ n = rd(); k = rd(); init(); while(n--){ int a = rd(); int b = rd(); printf("%lld\n",(pre[b] - pre[a - 1] + mod) % mod); } //system("pause"); return 0; }

浙公网安备 33010602011771号