哈尔滨理工大学第七届程序设计竞赛决赛(网络赛-高年级组)

哈尔滨理工大学第七届程序设计竞赛决赛(网络赛-高年级组)

A 所有情况的和
题目链接:

https://www.nowcoder.com/acm/contest/30/A

思路:

可以总结出公式:

\[ sum = \prod\limits_{i = 1}^n {(a_i + b_i)} \]

代码:
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 1005;
const ll mod = 1e9+7;
ll a[maxn][2],sum,res;
int n;
int main() {
    while(~scanf("%d",&n)) {
        sum=0;
        res=1;
        for(int i=1;i<=n;++i) {
            sum=0;
            for(int j=0;j<=1;++j) {
                scanf("%lld",&a[i][j]);
                sum+=a[i][j];
            }
            res=(res%mod*sum%mod)%mod;
        }
        printf("%lld\n",res);
    }
    return 0;
}
B 幸运大奖
题目链接:

https://www.nowcoder.com/acm/contest/30/B

思路:

直接暴力枚举,注意ios::sync_with_stdio(false);的优化,不然GG

代码:
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int t,k;
string s,res;
ll change(string str) {
    ll ans = 0,temp=1;
    int len = str.length();
    for(int i=len-1;i>=0;--i) {
        if(str[i]=='1') ans+=temp;
        temp=temp*2;
    }
    return ans;
}
int main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    cin>>t;
    int cnt=1;
    while(t--) {
        cin>>k>>s;
        int len=s.length();
        res="";
        for(int j=0;j<=len-k;++j) {
            string temp=s.substr(j,k);
            if(temp.compare(res)>0) res=temp;
        }
        cout<<"Case #"<<cnt<<": "<<change(res)<<endl;
        cnt++;
    }
    return 0;
}
D 数圈圈
题目链接:

https://www.nowcoder.com/acm/contest/30/D

思路:

基本的数位DP或者找规律都可以解

代码:
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll a,b,sum,a1,a2,a3,a4,a5;
ll count(ll n, int x) {
    ll cnt=0,k;
    for (ll i=1;k=n/i;i*=10) {
        ll high=k/10;
        if(x==0) {
            if(high) high--;
            else break;
        }
        cnt+=high*i;
        ll cur=k%10;
        if(cur>x) cnt += i;
        else if(cur == x) cnt+=n-k*i+1;
    }
    return cnt;
}
int main() {
    int t;
    scanf("%d",&t);
    while(t--) {
        scanf("%lld %lld",&a,&b);
        a1=count(b,0)-count(a-1,0);
        a2=count(b,4)-count(a-1,4);
        a3=count(b,6)-count(a-1,6);
        a4=count(b,8)-count(a-1,8);
        a5=count(b,9)-count(a-1,9);
        sum=a1+a2+a3+a4*2+a5;
        cout<<sum<<endl;
    }
}
E 求最大值
题目链接:

https://www.nowcoder.com/acm/contest/30/E

思路:

要使得a[j]-a[i]尽量大,j-i尽量小。推出:只考虑相邻两者之间的差值即可。证明略(画图即可)
注意最后的rbegin()->first。如果另外开辟对象再输入,会造成只能通过66.67%的数据。

代码:
#include <bits/stdc++.h>
using namespace std;
const int maxn = 200005;
int a[maxn];
int main() {
    int n;
    while(scanf("%d",&n)!=EOF) {
        map<int,int> mp;
        for(int i=1;i<=n;++i) scanf("%d",&a[i]);
        for(int i=2;i<=n;++i) mp[a[i]-a[i-1]]++;
        int Q;scanf("%d",&Q);
        while(Q--) {
            int p,y;scanf("%d %d",&p,&y);
            if(p>1) {
                int temp=a[p]-a[p-1];
                mp[temp]--;
                if(mp[temp]==0) mp.erase(temp);
                mp[y-a[p-1]]++;
            }
            if(p<n) {
                int temp=a[p+1]-a[p];
                mp[temp]--;
                if(mp[temp]==0) mp.erase(temp);
                mp[a[p+1]-y]++;
            }
            a[p]=y;
            printf("%d.00\n",mp.rbegin()->first);
        }
    }
    return 0;
}

转载于:https://www.cnblogs.com/lemonbiscuit/p/8024233.html

哈尔滨理工大学第七届程序设计竞赛决赛 题解 链接:https://www.nowcoder.com/acm/contest/30#question A: 在acimo星球, tabris 是一名勇敢的屠龙勇士,在上绿岛屠龙前决定挑选N种装备武装自己,现在每种装备有两个,**但每种装备tabris必须选择拿一个**,**不能多也不能少**。 每件装备有自己的属性值,能给tabris属性加成。 对于不同种类的装备之间有叠加效 阅读详情

相关推荐

不过的小东东

tabris实在是太穷了,为了发财,tabris去买了一张彩票,幸运地中了特别奖。 特别奖是这样的,不会直接给你发钱.会给你一串二进制数s,让你在s中选择一个不大于k的区间,这个区间表示的数就是获奖者的奖金数目. tabris中奖之后已经激动地蒙圈了,他不知道如何选择能获得最多的钱,你能帮帮他不? 输入描述: 输入一个整数T(T≤10),代表有T组数据. 每组数据占两行...

weixin_33862041的博客 218

哈尔滨理工大学第七届程序设计竞赛决赛年级组)】 A B C D E G

A 所有情况的和 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld 题目描述 在acimo星球, tabris 是一名勇敢的屠龙勇士,在上绿岛屠龙前决定挑选N种装备武装自己,现在每种装备有两个,但每种装备tabris必须选择拿一个,不能多也不能少。 每件装备有自己的属性值,能给tabris

lzs_lazy 348

哈尔滨理工大学第七届程序设计竞赛决赛网络-年级组-C:小明打联盟(DP+思维)

哈尔滨理工大学第七届程序设计竞赛决赛网络-年级组-C:小明打联盟(DP+思维)小明很喜欢打游戏,现在已知一个新英雄即将推出,他同样拥有四个技能,其中三个小技能的释放时间和固定的伤害值为: 1.乌鸦坐飞机 释放时间:x 固定伤害值:a 2.蜘蛛吃耳屎 释放时间:y 固定伤害值:b 3.饿狼前进 释放时间:z 固定伤害值:c 他还有一个大招,其释放的时间是一个区间【L,R】,可以在区间内任意时间点释放出技能,其如果在L+i时刻释放技能,其能够打出的伤害值为:temp+A*i 这里temp值表示技能的基

Mitsuha_的博客 758

哈尔滨理工大学第七届程序设计竞赛决赛 A 所有情况的和

题目描述 在acimo星球, tabris 是一名勇敢的屠龙勇士,在上绿岛屠龙前决定挑选N种装备武装自己,现在每种装备有两个,但每种装备tabris必须选择拿一个,不能多也不能少。 每件装备有自己的属性值,能给tabris属性加成。 对于不同种类的装备之间有叠加效果,如果选择多件装备,最终的属性加成为他们的乘积。 若tabris初始属性值为0,最后属性加成的期望是多少。 输入描述: 有多

知足常乐的博客 551

哈尔滨理工大学第七届程序设计竞赛决赛网络-年级组)(重现

A #include<iostream> #include<cstring> #include<cstdio> #include<algorithm> using namespace std; typedef long long ll; const ll mod=1e9+7; /*ll quick_mul(ll x,ll y) { ll ans=0; while(y){ if(y&1)ans=(ans+x)%mod

fusu123456789的博客 202

哈尔滨理工大学第七届程序设计竞赛决赛网络-年级组)G.幼儿园战争

题目描述幼儿园的孩子们正在做游戏,每个人都有自己的帮派,帮派之间打架,然后赢者吞并弱者扩大自己的势力。最开始每个孩子的帮派中只有自己,然后接下来有会有两个人打架,这两个人会集结自己所属的势力开始打架,打赢的一方就会吞并输的一方,当然如果x,y是一个势力就不会打起来。有些聪明的小朋友会将自己的糖分给其他小朋友引诱他离开所属势力加入到自己势力。又有一些小朋友会对现在的势力不满,然后反叛出去自立门户。作...

keep coding 581

哈尔滨理工大学第七届程序设计竞赛决赛网络-年级组)A 所有情况的和【期望】

时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld 题目描述 在acimo星球, tabris 是一名勇敢的屠龙勇士,在上绿岛屠龙前决定挑选N种装备武装自己,现在每种装备有两个,但每种装备tabris必须选择拿一个,不能多也不能少。 每件装备有自己的属性值,能给tabris属性加成。 对于不同种类

Irish_Moonshine的博客 245

哈尔滨理工大学第七届程序设计竞赛决赛网络-年级组)B 幸运大奖【DP】

时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld 题目描述 tabris实在是太穷了,为了发财,tabris去买了一张彩票,幸运地中了特别奖。 特别奖是这样的,不会直接给你发钱.会给你一串二进制数s,让你在s中选择一个不大于k的区间,这个区间表示的数就是获奖者的奖金数目. tabris中奖之

Irish_Moonshine的博客 243

哈尔滨理工大学第七届程序设计竞赛决赛网络-年级组)A_所有情况的和

题目描述 在acimo星球, tabris 是一名勇敢的屠龙勇士,在上绿岛屠龙前决定挑选N种装备武装自己,现在每种装备有两个,**但每种装备tabris必须选择拿一个**,**不能多也不能少**。 每件装备有自己的属性值,能给tabris属性加成。 对于不同种类的装备之间有叠加效果,如果选择多件装备,最终的属性加成为他们的乘积。 若tabris初始属性值为0,最后属性加成的期望是多少。

sdau20163940的博客 276

哈尔滨理工大学第七届程序设计竞赛决赛网络-年级组)B 幸运大奖

题目描述tabris实在是太穷了,为了发财,tabris去买了一张彩票,幸运地中了特别奖。特别奖是这样的,不会直接给你发钱.会给你一串二进制数s,让你在s中选择一个不大于k的区间,这个区间表示的数就是获奖者的奖金数目.tabris中奖之后已经激动地蒙圈了,他不知道如何选择能获得最多的钱,你能帮帮他不?输入描述:输入一个整数T(T≤10),代表有T组数据. 每组数据占两行. 第一行有一个整数K(k≤...

keep coding 552

哈尔滨理工大学第七届程序设计竞赛决赛网络-年级组) B-幸运大奖

幸运大奖 时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld 题目描述 tabris实在是太穷了,为了发财,tabris去买了一张彩票,幸运地中了特别奖。 特别奖是这样的,不会直接给你发钱.会给你一串二进制数s,让你在s中选择一个不大于k的区间,这个区间表示的数就是获奖者的奖金数目. ...

weixin_33881753的博客 100

哈尔滨理工大学第七届程序设计竞赛决赛网络-年级组)D 数圈圈

时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld 题目描述 tabris有一个习惯,无聊的时候就会数圈圈,无论数字还是字母。 现在tabris更无聊啦,晚上睡不着觉就开始数羊,从a只数到b只。 顺便还数了a到b之间有多少个圈。 但是tabris笨啊,虽然数羊不会数

konghhhhh的博客 640

哈尔滨理工大学第七届程序设计竞赛决赛网络-年级组- (A,B)

AC了A,B题后,看了看D也没思路就没再做,A题n明明达到1e3我还先dfs了一下,其实是个简单dp,这个B题可以说是把基本错误犯了个遍,思路一直是对的,WA了8次才A, A 所有情况的和 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld

Orz 417

哈尔滨理工大学第七届程序设计竞赛决赛网络-年级组)B题幸运大奖

时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld 题目描述 tabris实在是太穷了,为了发财,tabris去买了一张彩票,幸运地中了特别奖。 特别奖是这样的,不会直接给你发钱.会给你一串二进制数s,让你在s中选择一个不大于k的区间,这个区间表示的数就是获奖者的奖金数目. tabris中奖之后已

Pandauncle的博客 428

哈尔滨理工大学第七届程序设计竞赛决赛网络-年级组-E:求最大值(思维)

哈尔滨理工大学第七届程序设计竞赛决赛网络-年级组-E:求最大值(思维)给出一个序列,你的任务是求每次操作之后序列中 (a[j]-a[i])/(j-i)【1<=i<j<=n】的最大值。 操作次数有Q次,每次操作需要将位子p处的数字变成y.

Mitsuha_的博客 603

哈尔滨理工大学第七届程序设计竞赛决赛网络-年级组)A所有情况的和

所有情况的和   时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld 题目描述 在acimo星球, tabris是一名勇敢的屠龙勇士,在上绿岛屠龙前决定挑选N种装备武装自己,现在每种装备有两个,**但每种装备tabris必须选择拿一个**,**不能多也不能少**。 每件装备有自己的属性值,能给

Yuki_fx的博客 469
上一篇: Wannafly挑战赛5 补题
下一篇: Educational Codeforces Round 34 (Rated for Div. 2) A B C D
ddqb3235
博客等级 码龄11年 27粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值