列表

详情


NC229550. 香辣牛肉面

描述

孔易己是吃店里香辣牛肉面而加香菜的唯一的人。他身材不高大,脸色也不清白,但是对于香辣牛肉面的口味控制有独到的见解。
对于店家呈上来的香辣牛肉面,抠门的孔易己并不想花额外的钱加面加牛肉,只能从免费的调料入手,譬如醋,辣油,还有他最爱的香菜。
孔易己认为香辣牛肉面的风味(F)受以下三个指标的影响,分辨是酸度(V),辣度(S)和香菜含量(C)。


孔易己是个节制的人,每次吃香辣牛肉面前他都会预设好这次想吃的风味值(F),并严格按着这个风味值来添加配料。
有天他突发奇想,对于给定的风味值(F),想知道自己有多少种不同的方式来添加调料,(即不同的V, S, C值)让他享受给定风味值(F)的香辣牛肉面。

输入描述

第一行含有一个整数T()表示测试数据组数。
对于每组测试数据:
第1行含有一个整数F(),表示想要风味值为F的香辣牛肉面。

输出描述

每组测试数据输出一个数,表示添加调料的方案数。

示例1

输入:

5
2
3
4
5
114514

输出:

3
5
8
10
1351608

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C(gcc 7.5.0) 解法, 执行用时: 644ms, 内存消耗: 300K, 提交时间: 2022-10-22 13:16:56

#include <stdio.h>
int main() {
    int t;
    scanf("%d", &t);
    while (t--) {
        long long n, ans = 0;
        scanf("%lld", &n);
        for (long long i = 1,j; i <= n; i=j+1) {
            j = n / (n / i);
            ans += (n / i)*(j-i+1);
        }
        printf("%lld\n", ans);
    }
    return 0;
}

C++(g++ 7.5.0) 解法, 执行用时: 107ms, 内存消耗: 300K, 提交时间: 2022-10-13 18:48:43

#include<iostream>
#include<math.h>
using namespace std;
typedef long long ll;
ll t;
int main() {
	cin >> t;
	while (t--) {
        ll n ,ans = 0,k;
		cin >> n;
		k = ll(sqrt(n));
		for (int i = 1; i <= k; i++) {
			ans+= n / i - i + 1;
		}
		ans = (ans - k) * 2 + k;
        cout << ans << endl;
	}
	
}

C 解法, 执行用时: 99ms, 内存消耗: 304K, 提交时间: 2022-10-18 19:05:10

#include <stdio.h>
int main()
{
    int T, i;
    scanf("%d",&T);
    for ( i = 0; i < T; i++)
    {
        long long int F, V, S, C, sum = 0;
        scanf("%lld",&F);
        for(V = 1; V*V <= F; V++)
        {
            sum+=2*((F-V*V)/V+1)-1;
        }
        printf("%lld\n",sum);
    }
}

C++ 解法, 执行用时: 108ms, 内存消耗: 380K, 提交时间: 2021-11-27 21:25:15

#include"stdio.h"
#include"string.h"
int main()
{
	int t;
	scanf("%d",&t);
	while(t--)
	{
		long long n,i,ans=0;
		scanf("%lld",&n);
		for(i=1;i*i<=n;i++)
		ans=ans+2*(n/i-i)+1;
		printf("%lld\n",ans);
	}
	return 0;
}

上一题