cf #581 div2

A
暴力检查即可

#include <bits/stdc++.h>
using namespace std;
const int maxn = 200 + 5;
int dig[maxn];

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);

    string str;
    cin >> str;
    reverse(str.begin(), str.end());
    int ans = 0, singlecnt = 0, secondcnt = 0;
    for (int i = 0; str[i]; ++i) {
        if (str[i] == '1') {
            dig[i] = 1;
            if (i & 1) singlecnt++;
            else secondcnt++;
        }
    }
    for (int i = 0; ; i += 2) {
        bool flg = false;
        for (int j = i; j < 100; ++j) {
            if (dig[j]) {
                flg = true;
                ans++;
                break;
            }
        }
        if (!flg) break;
    }
    if (singlecnt == 0 && secondcnt == 1) ans--;
    printf("%d\n", ans);
}

B
审题:只能形成1 2 4 8 2^i这样的序列
最小即用1填充,最大用2^i填充

#include <bits/stdc++.h>
using namespace std;
const int maxn = 1000 + 5;
typedef long long ll;
ll minsum[50], maxsum[50];

int main()
{

    for (int i = 1; i <= 20; ++i) {
        //minsum[i] = minsum[i - 1] + i;
        maxsum[i] = maxsum[i - 1] + (1ll << (i - 1));
        //cout << minsum[i] << ", " << maxsum[i] << endl;
    }
    int n, l, r;
    scanf("%d%d%d", &n, &l, &r);
    printf("%lld %lld\n", maxsum[l] + n - l, maxsum[r] + 1ll * (n - r) * (1ll << (r - 1)));
}

C
题意为若最短路dis[p1][pi] = dis[p1][p2] + dis[p2][p3] + dis[p3][pj] + … + dis[pj][pi]即可省略中途经过点直接输出p1->pi

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 100 + 5;
const int inf = 0x3f3f3f3f;
char mat[maxn][maxn];
int dis[maxn][maxn];
int a[1000005];

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);

    int n; cin >> n;
    for (int i = 1; i <= n; ++i)
        for (int j = 1; j <= n; ++j)
            dis[i][j] = inf;
    for (int i = 1; i <= n; ++i) {
        for (int j = 1; j <= n; ++j) {
            cin >> mat[i][j];
            if (mat[i][j] == '1') dis[i][j] = 1;
        }
    }
    for (int k = 1; k <= n; ++k) {
        for (int i = 1; i <= n; ++i) {
            for (int j = 1; j <= n; ++j) {
                if (dis[i][k] + dis[k][j] < dis[i][j])
                    dis[i][j] = dis[i][k] + dis[k][j];
            }
        }
    }
    for (int i = 1; i <= n; ++i) dis[i][i] = inf;
    int m; cin >> m;
    for (int i = 1; i <= m; ++i) cin >> a[i];
    int pos = 1;
    vector<int> ans;
    ans.push_back(a[1]);
    for (int i = 2; i <= m; ++i) {
        if (dis[a[pos]][a[i]] != i - pos) {
            ans.push_back(a[max(pos + 1, i - 1)]);
            pos = i - 1;
        }
    }
    ans.push_back(a[m]);
    cout << ans.size() << endl;
    for (int i = 0; i < ans.size(); ++i) {
        if (i) cout << " " << ans[i];
        else cout << ans[i];
    }
    cout << endl;
}

D
参考博文:https://hexo.mysakure.com/2019/08/D1-Kirk-and-a-Binary-String-easy-version
贪心
`#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 2000 + 5;
char str[maxn], ans[maxn];

int main()
{
ios::sync_with_stdio(false);
cin.tie(0);

cin >> str;
int cnt = 0, n = strlen(str);
for (int i = n - 1; i >= 0; --i) {
    ans[i] = str[i];
    if (str[i] == '0') cnt++;
    else if (cnt) cnt--;
    else ans[i] = '0';
}
ans[n] = '\0';
cout << ans << endl;

}
`

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
大学生就业服务平台管理系统按照操作主体分为管理员和用户。管理员的功能包括学生档案管理、字典管理、试卷管理、试卷选题管理、试题表管理、考试记录表管理、答题详情表管理、错题表管理、法律法规管理、法律法规收藏管理、法律法规留言管理、就业分析管理、论坛管理、企业管理、简历管理、老师管理、简历投递管理、新闻资讯管理、新闻资讯收藏管理、新闻资讯留言管理、学生信息管理、宣传管理、学生管理、职位招聘管理、职位收藏管理、招聘咨询管理、管理员管理。用户的功能等。该系统采用了Mysql数据库,Java语言,Spring Boot框架等技术进行编程实现。 大学生就业服务平台管理系统可以提高大学生就业服务平台信息管理问题的解决效率,优化大学生就业服务平台信息处理流程,保证大学生就业服务平台信息数据的安全,它是一个非常可靠,非常安全的应用程序。 管理员权限操作的功能包括管理新闻信息,管理大学生就业服务平台信息,包括考试管理,培训管理,投递管理,薪资管理等,可以管理新闻信息。 考试管理界面,管理员在考试管理界面中可以对界面中显示,可以对考试信息的考试状态进行查看,可以添加新的考试信息等。投递管理界面,管理员在投递管理界面中查看投递种类信息,投递描述信息,新增投递信息等。新闻信息管理界面,管理员在新闻信息管理界面中新增新闻信息,可以删除新闻信息。新闻信息类型管理界面,管理员在新闻信息类型管理界面查看新闻信息的工作状态,可以对新闻信息的数据进行导出,可以添加新新闻信息的信息,可以编辑新闻信息信息,删除新闻信息信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值