zoukankan      html  css  js  c++  java
  • 牛客练习赛17

    长方体

    1 #include <bits/stdc++.h>
    2 using namespace std;
    3  
    4 int main(){
    5     int X1, X2, X3;
    6     scanf("%d %d %d", &X1, &X2, &X3);
    7     printf("%d
    ", 4 * (int)(sqrt(1.0 * X1 * X2 / X3 + 0.5) + sqrt(1.0 * X1 * X3 / X2 + 0.5) + sqrt(1.0 * X2 * X3 / X1 + 0.5)));
    8     return 0;
    9 }
    Aguin

    好位置

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 const int maxn = 2e5 + 10;
     4 char s[maxn], t[maxn];
     5 int a[maxn], r[66];
     6  
     7 int main(){
     8     scanf("%s %s", s + 1, t + 1);
     9     int ls = strlen(s + 1), lt = strlen(t + 1);
    10     int p = 1, ok = 1;
    11     for(int i = 1; i <= ls; ++i) {
    12         if (p <= lt && s[i] == t[p]) ++p;
    13         a[i] = p - 1;
    14     }
    15     p = lt;
    16     for(int i = ls; i >= 1; --i){
    17         if(p >= 1 && s[i] == t[p]){
    18             r[s[i]-'a'] = p;
    19             p--;
    20         }
    21         if(r[s[i]-'a'] && r[s[i]-'a'] <= a[i-1] + 1) continue;
    22         ok = 0;
    23         break;
    24     }
    25     puts(ok ? "Yes" : "No");
    26     return 0;
    27 }
    Aguin

    操作数

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 typedef long long LL;
     4 const LL mod = 1e9 + 7;
     5 LL a[2222];
     6  
     7 LL qpow(LL a, LL b) {
     8     LL ret = 1LL;
     9     while (b) {
    10         if (b & 1) ret = ret * a % mod;
    11         a = a * a % mod;
    12         b >>= 1;
    13     }
    14     return ret;
    15 }
    16  
    17 LL inv(LL x) {
    18     return qpow(x, mod - 2);
    19 }
    20  
    21 int main() {
    22     int n, k;
    23     scanf("%d %d", &n, &k);
    24     for (int i = 1; i <= n; ++i) {
    25         scanf("%lld", a + i);
    26         LL ans = 0, tmp = 1;
    27         for (int j = i; j >= 1; --j) {
    28             ans = (ans + a[j] * tmp) % mod;
    29             tmp = tmp * (k - j + i) % mod * inv(i - j + 1) % mod;
    30         }
    31         printf("%lld%c", k ? ans : a[i], i == n ? '
    ' : ' ');
    32     }
    33     return 0;
    34 }
    Aguin

    经纬度

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 const double pi = acos(-1);
     4  
     5 int main(){
     6     int T;
     7     scanf("%d", &T);
     8     while(T--){
     9         double lat1, lng1, lat2, lng2, r = 6371009;
    10         scanf("%lf %lf %lf %lf", &lat1, &lng1, &lat2, &lng2);
    11         lat1 = lat1 / 180 * pi;
    12         lat2 = lat2 / 180 * pi;
    13         lng1 = lng1 / 180 * pi;
    14         lng2 = lng2 / 180 * pi;
    15         double x1 = r * cos(lat1) * sin(lng1), y1 = r * cos(lat1) * cos(lng1), z1 = r * sin(lat1);
    16         double x2 = r * cos(lat2) * sin(lng2), y2 = r * cos(lat2) * cos(lng2), z2 = r * sin(lat2);
    17         double x = sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2) + (z1 - z2) * (z1 - z2));
    18         double c = acos((2 * r * r - x * x) / 2 / r / r);
    19         double d = c * r - x;
    20         printf("%.0f
    ", d);
    21     }
    22     return 0;
    23 }
    Aguin

    求长度

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 typedef pair<int, int> pii;
     4 const int maxn = 1e5 + 10;
     5 const int INF = 1e9;
     6 vector<pii> G[maxn];
     7 int n, p[11];
     8  
     9 int dis[maxn], vis[maxn];
    10 void dijkstra(int s){
    11     for(int i = 0; i <= n; ++i) dis[i] = INF, vis[i] = 0;
    12     dis[s] = 0;
    13     priority_queue<pii> pq;
    14     pq.push(pii(0, s));
    15     while(!pq.empty()){
    16         int x = pq.top().second; pq.pop();
    17         if(vis[x]) continue;
    18         vis[x] = 1;
    19         for(int i = 0; i < G[x].size(); ++i){
    20             int to = G[x][i].first, d = G[x][i].second;
    21             if(dis[to] > dis[x] + d) {
    22                 dis[to] = dis[x] + d;
    23                 pq.push(pii(-dis[to], to));
    24             }
    25         }
    26     }
    27 }
    28  
    29 int d[11][11], f[1<<10][10];
    30 int main() {
    31     int T;
    32     scanf("%d", &T);
    33     while (T--) {
    34         int m, S;
    35         scanf("%d %d", &n, &m);
    36         for (int i = 0; i <= n; ++i) G[i].clear();
    37         for (int i = 1; i <= m; ++i) {
    38             int x, y, z;
    39             scanf("%d %d %d", &x, &y, &z);
    40             G[x].push_back(pii(y, z));
    41             G[y].push_back(pii(x, z));
    42         }
    43         scanf("%d", &S);
    44         for(int i = 0; i < (1 <<S); ++i)
    45             for(int j = 0; j < S; ++j)
    46                 f[i][j] = INF;
    47         for (int i = 1; i <= S; ++i) scanf("%d", p + i);
    48         for (int i = 1; i <= S; ++i) {
    49             dijkstra(p[i]);
    50             f[1<<(i-1)][i-1] = d[0][i] = d[i][0] = dis[0];
    51             for (int j = 1; j <= i; ++j) {
    52                 d[i][j] = d[j][i] = dis[p[j]];
    53             }
    54         }
    55         for(int i = 0; i < (1 << S); ++i){
    56             for(int j = 0; j < S; ++j){
    57                 if(f[i][j] == INF) continue;
    58                 for(int k = 0; k < S; ++k){
    59                     if(i & (1 << k)) continue;
    60                     if(d[j+1][k+1] == INF) continue;
    61                     f[i^(1<<k)][k] = min(f[i^(1<<k)][k], f[i][j] + d[j+1][k+1]);
    62                 }
    63             }
    64         }
    65         int ans = INF;
    66         for(int i = 0; i < S; ++i){
    67             ans = min(ans, f[(1<<S)-1][i] + d[0][i+1]);
    68         }
    69         printf("%d
    ", ans);
    70     }
    71     return 0;
    72 }
    Aguin

    玩游戏

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 const int maxn = 5e5 + 10;
     4 char s[maxn], t[maxn];
     5  
     6 bool check(int x, int lt){
     7     for(int i = 1; i <= lt; ++i)
     8         if(s[x+i] != t[i]) return false;
     9     return true;
    10 }
    11  
    12 int main(){
    13     int T;
    14     scanf("%d", &T);
    15     while(T--){
    16         scanf("%s %s", s + 1, t + 1);
    17         int ls = strlen(s + 1), lt = strlen(t + 1), ok = 0;
    18         if(ls == lt){
    19             if(check(0, lt)) ok = 1;
    20         }
    21         else if((ls - lt) % 2 == 1) {
    22             if (check((ls - lt - 1) / 2, lt) && check((ls - lt - 1) / 2 + 1, lt)) ok = 1;
    23         }
    24         else {
    25             if ((check((ls - lt - 1) / 2, lt) || check((ls - lt - 1) / 2 + 1, lt)) && (check((ls - lt - 1) / 2 + 1, lt) || check((ls - lt - 1) / 2 + 2, lt))) ok = 1;
    26         }
    27         puts(ok ? "Alice" : "Bob");
    28     }
    29     return 0;
    30 }
    Aguin
  • 相关阅读:
    流复制-pg_basebackup (有自定义表空间)
    流复制-pg_basebackup (没有自定义表空间)
    PG 更新统计信息
    PG修改参数方法
    Postgres的索引01
    Postgres基础操作
    PostgreSQL安装
    SQL拦截器
    没对象的快自己写一个吧!带你了解一下python对象!
    喜欢看电影来哦!教你如果使用Python网络爬虫爬取豆瓣高分电影!
  • 原文地址:https://www.cnblogs.com/Aguin/p/8995209.html
Copyright © 2011-2022 走看看