2021寒假训练(八)
| 题号 | A | B | C | D | E | F | G |
| 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 = 3e5 + 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, x, y; char s[maxn]; n = rd(); x = rd(); y = rd(); scanf("%s",s); int cnt0 = 0, cnt1 = 0, f = -1; for(int i = 0; i < n; i++){ if(s[i] == '0'){ if(f == 1 || f == -1)cnt0++; f = 0; }else{ if(f == 0 || f == -1)cnt1++; f = 1; } } if(cnt0 != 0){ int res1 = cnt0 * y; int res2 = (cnt0 - 1) * x + y; printf("%lld\n",min(res1, res2)); }else{ printf("0\n"); } //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 a[maxn], vis[maxn] = {0}; signed main(){ int n = rd(); for(int i = 0; i < n; i++)a[i] = rd(); sort(a, a + n, greater<int>()); int p1 = 0, p2 = 0, res = 0; while(p1 < n && p2 < n){ if(p1 <= p2 && a[p1] > a[p2]){ res++; vis[p1] = 1; vis[p2] = 1; p1++; p2++; }else{ p2++; } } printf("%lld\n",res); //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 = 3e5 + 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; } const int MAX = 15000010; int a[maxn]; int vis[MAX], prime[MAX], mp[MAX] = {0}; int Euler_prime(int n) { int cnt=1; memset(vis,false,sizeof vis); for(int i=2; i<=n; i++) { if(!vis[i]) { prime[cnt++]=i; vis[i]=true; } for(int j=1; j<cnt; j++) { if(i*prime[j]>n)break; vis[i*prime[j]]=true; if(i%prime[j]==0)break; } } return cnt; } int main(){ int n; int p = Euler_prime(MAX); scanf("%d",&n); scanf("%d",&a[0]); int _gcd = a[0]; for(int i = 1; i < n; i++){ scanf("%d",&a[i]); _gcd = gcd(_gcd, a[i]); } for(int i = 0; i < n; i++){ a[i] /= _gcd; for(int j = 1; prime[j] * prime[j] <= a[i]; j++){ if(a[i] % prime[j] == 0){ mp[prime[j]]++; while(a[i] % prime[j] == 0)a[i] /= prime[j]; } } mp[a[i]]++; } // for(int i = 0; i < 5; i++)printf("%d%c",mp[i]," \n"[i == 4]); int res = -1; for(int i = 2; i < MAX; i++){ if(mp[i] > res)res = mp[i]; } if(res != 0)printf("%d\n",n - res); else printf("-1\n"); //system("pause"); return 0; }

浙公网安备 33010602011771号