牛客寒假算法基础集训营2

https://ac.nowcoder.com/acm/contest/327#question

 

D.处女座与重修费

 

代码:

#include <bits/stdc++.h>
using namespace std;
 
int N;
 
int main() {
    scanf("%d", &N);
    int sum  =0;
    for(int i = 0; i < N; i ++) {
        int x;
        scanf("%d", &x);
        if(x >= 0 && x < 60)
            sum ++;
    }
 
    printf("%d\n", sum * 400);
    return 0;
}
View Code

 

G.处女座与复读机

 

代码:

#include <bits/stdc++.h>
using namespace std;
 
string s, t;
 
int minDistance(string word1, string word2) {
        int row = word1.size();
        int col = word2.size();
        vector<vector<int> > dp(row + 1, vector<int>(col + 1, 0));
 
        for (int i = 1; i <= row; i ++)
            dp[i][0] = i;
        for (int j = 1; j <= col; j ++)
            dp[0][j] = j;
 
        for (int i = 1; i <= row; i ++) {
            for (int j = 1; j <= col; j ++) {
                if (word1[i - 1] == word2[j - 1])
                    dp[i][j] = dp[i - 1][j - 1];
                else
                    dp[i][j] = min(min(dp[i - 1][j - 1] + 1,dp[i - 1][j] + 1), dp[i][j - 1] + 1);
            }
        }
        return dp[row][col];
}
 
int main() {
    cin >> s >> t;
    int ans = minDistance(s, t);
    if(ans <= 2) printf("YES\n");
    else printf("NO\n");
    return 0;
}
View Code

 

H.处女座的测验(一)

 

代码:

#include <bits/stdc++.h>
using namespace std;
 
const int maxn = 50000;
bool visit[maxn];
int prime[maxn];
 
void init_prim() {
    memset(visit, true, sizeof(visit));
    int num = 0;
    for (int i = 2; i <= maxn; ++i) {
        if (visit[i] == true) {
            num++;
            prime[num] = i;
        }
        for (int j = 1; ((j <= num) && (i * prime[j] <= maxn));  ++j) {
            visit[i * prime[j]] = false;
            if (i % prime[j] == 0) break;
        }
    }
}
 
 
int main() {
    init_prim();
    for(int i = 1; i <= 2000; i ++) {
        cout << prime[4000 - i] * prime[i] << endl;
    }
    return 0;
}
View Code

 

 

J.处女座的期末复习

 

代码:

#include <bits/stdc++.h>
using namespace std;
 
const int maxn = 1e5 + 10;
int N;
 
struct Node{
    int a, b;
}node[maxn];
 
bool cmp(const Node& aa, const Node& bb) {
    if(aa.b != bb.b)
        return aa.b < bb.b;
    else return aa.a < bb.a;
}
 
int main() {
    scanf("%d", &N);
    for(int i = 0; i < N; i ++) scanf("%d", &node[i].a);
    for(int i = 0; i < N; i ++) scanf("%d", &node[i].b);
 
    bool flag = true;
    sort(node, node + N, cmp);
    int sum = 0;
     
    for(int i = 0; i < N; i ++) {
        sum += node[i].a;
        if(sum <= node[i].b)
            continue;
        else {
            flag = false;
            break;
        }
    }
 
    if(flag) printf("YES\n");
    else printf("NO\n");
    return 0;
}
View Code

 

C.处女座的砝码

 

 代码:

#include <bits/stdc++.h>
using namespace std;

typedef long long ll;

int main() {
    long double n, m=0;
    int i = 0;
    
    cin >> n;
    
    while(m < n) {
        i ++;
        m *= 3;
        m += 1;
    }
    
    printf("%d\n", i);
    return 0;
}
View Code

 

今天下午的比赛写出来四道题!

Be 主要回来继续撸题了!要加油!!!

FHFHFH

 

posted @ 2019-01-24 22:04  丧心病狂工科女  阅读(229)  评论(0编辑  收藏  举报