牛客竞赛语法入门班顺序结构习题

1044 旅游观光

题目描述:
        有n个地方,编号为1->n,任意两个地方有公交车,从i到j的票价为(i+j)mod(n+1),而且这个票可以用无限次,你要把这些地方全部走一遍,问最小花费为多少。可以在任意地方开始和结束。

输入描述:
第一行一个数n
输出描述:
输出一行一个数表示答案
示例:
输入
10
输出
4
说明
1 -> 10 -> 2 -> 9 -> 3 -> 8 -> 4 -> 7 -> 5 -> 6,代价是4
备注:
对于100%的数据,有1 <= n <= 100000
分析:
因为都是取n+1的模,所以要使得所加得数据更靠近n+1。易知首尾相加两项为n+1,即为解题关键。
第一次:从1到n,(1+n)%(1+n)=0;
第二次:从n到2,(n+2)%(1+n)=1;
第三次:从2到n-1,(2+n-1)%(1+n)=0;
由此往复得到最小花费为(n-1)/2;
AC代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    cin>>n;
    cout <<(n-1)/2<<endl;
    return 0;
}

1047 得不到的爱情

题目描述:
        
Chranos是个数学天才。一天,有一个可爱的小女孩追求Chranos,他知道Chranos最喜欢当且仅当总质量为K克的时候的番茄炒蛋了。她希望通过美食俘获Chranos的胃,这样就一定可以和他在一起了吧!虽然小女孩有无限数量的食材,但是数学王国的番茄和蛋非常特殊,他们的质量分别为N克和M克。为了表现一颗完整的心、表达充足的爱意,所有的食材必须被用完。N和M都是正整数且互素,制作过程中既不会凭空增加质量,也不会凭空消失质量。

Chranos不希望小女孩打扰他学数学。他发现,并不是所有番茄炒蛋都是可以被制作出来的。他想找出最大的不可以被制作出的总质量K来拒绝小女孩,这样Chranos就可以永远和数学在一起了!

输入描述:
第一行为正整数N和M(2≤N,M≤50000).
输出描述:
输出最大的不可以被制作出的总质量k
示例:
输入
2 3
输出
1
分析:
题目意思其实就是求一不定方程ax+by=k,k的最大值。运用了塞瓦维斯特定理,即k=ab-a-b。
AC代码:

#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<cmath>
#include<algorithm>
#include<vector>
using namespace std;
#define int long long
signed main()
{
	int N, M;
	cin >> N >> M;
	cout << N*M-M-N;
	return 0;
}

注:应该用long long,否则会WA

  • 11
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值