C-FLY(思维+数学)CodeForces 1011C

题目:http://codeforces.com/problemset/problem/1011/C

题意:给你一个飞船,你从地球到火星再回来,飞船去的时候经过每个星球都要消耗燃料,回来的时候一步返回不消耗任何燃料,已知飞船的重量和每个星球起飞和落下1吨燃料能支持多少重量的飞船起飞,求出最少需要的燃油的质量。

思路:这个题要从后往前推,设 火箭加燃油的总质量为x,燃油的质量为y,那么,
x+y/a[i]=y,得到y=x/(a[i]-1)

#include <iostream>
#include <cstring>
#include <cstdlib>
#include <cstdio>
#include <algorithm>
#include <set>
#include <map>
using namespace std;
double a[1005];
double b[1005];
int main()
{
    int n,flag=0,i;
    double m,sum,y;
    scanf("%d%lf",&n,&m);
    sum=0;
    for( i=1; i<=n; i++)
    {
        scanf("%lf",&a[i]);
        if(a[i]<=1)
            flag=1;
    }
    for( i=1; i<=n; i++)
    {
        scanf("%lf",&b[i]);
        if(b[i]<=1)
            flag=1;
    }

    if(flag==1)
    {
        cout<<"-1"<<endl;
        return 0;
    }
    for(int i=1; i<=n; i++)
    {
        y=m/(a[i]-1);
        m+=y;
        sum+=y;
        y=m/(b[i]-1);
        m+=y;
        sum+=y;

    }
    printf("%.10lf\n",sum);
    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Codeforces API提供了RESTful API,可以使用curl和cjson库来获取API数据。以下是一个示例程序,该程序使用curl和cjson库来获取Codeforces API数据: ```c #include <stdio.h> #include <curl/curl.h> #include <cjson/cJSON.h> #define API_URL "https://codeforces.com/api/user.rating?handle=" struct MemoryStruct { char *memory; size_t size; }; // 回调函数,用于处理curl获取到的数据 static size_t WriteMemoryCallback(void *contents, size_t size, size_t nmemb, void *userp) { size_t realsize = size * nmemb; struct MemoryStruct *mem = (struct MemoryStruct *)userp; mem->memory = realloc(mem->memory, mem->size + realsize + 1); if (mem->memory == NULL) { /* out of memory! */ printf("not enough memory (realloc returned NULL)\n"); return 0; } memcpy(&(mem->memory[mem->size]), contents, realsize); mem->size += realsize; mem->memory[mem->size] = 0; return realsize; } int main(int argc, char **argv) { CURL *curl_handle; CURLcode res; struct MemoryStruct chunk; chunk.memory = malloc(1); /* will be grown as needed by the realloc above */ chunk.size = 0; /* no data at this point */ if (argc < 2) { printf("Usage: %s <handle>\n", argv[0]); exit(1); } char url[1024]; snprintf(url, sizeof(url), "%s%s", API_URL, argv[1]); curl_global_init(CURL_GLOBAL_ALL); curl_handle = curl_easy_init(); curl_easy_setopt(curl_handle, CURLOPT_URL, url); curl_easy_setopt(curl_handle, CURLOPT_WRITEFUNCTION, WriteMemoryCallback); curl_easy_setopt(curl_handle, CURLOPT_WRITEDATA, (void *)&chunk); res = curl_easy_perform(curl_handle); if (res != CURLE_OK) { fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res)); exit(1); } curl_easy_cleanup(curl_handle); cJSON *json = cJSON_Parse(chunk.memory); if (json == NULL) { printf("Error parsing JSON data.\n"); exit(1); } cJSON *result = cJSON_GetObjectItemCaseSensitive(json, "result"); if (cJSON_IsArray(result)) { int count = cJSON_GetArraySize(result); for (int i = 0; i < count; i++) { cJSON *item = cJSON_GetArrayItem(result, i); cJSON *contestId = cJSON_GetObjectItemCaseSensitive(item, "contestId"); cJSON *contestName = cJSON_GetObjectItemCaseSensitive(item, "contestName"); cJSON *rank = cJSON_GetObjectItemCaseSensitive(item, "rank"); cJSON *ratingChange = cJSON_GetObjectItemCaseSensitive(item, "newRating") - cJSON_GetObjectItemCaseSensitive(item, "oldRating"); printf("Contest %d: %s (Rank: %d, Rating Change: %d)\n", contestId->valueint, contestName->valuestring, rank->valueint, ratingChange->valueint); } } cJSON_Delete(json); free(chunk.memory); return 0; } ``` 这个程序会获取指定Codeforces用户的比赛评级历史记录,并输出到控制台上。你可以根据自己的需要修改代码,以便访问不同的Codeforces API端点和处理不同的数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值