2057. [ZLXOI2015]殉國

来源:http://www.cnblogs.com/zwfymqz/archive/2017/05/23/6896283.html
-Advertisement-
Play Games

★☆ 輸入文件:BlackHawk.in 輸出文件:BlackHawk.out 評測插件 時間限制:0.05 s 記憶體限制:256 MB 【題目描述】 正義的萌軍瞄準了位於南極洲的心靈控制器,為此我們打算用空襲摧毀心靈控制器,然而心靈控制器是如此強大,甚至能緩慢控制飛行員。一群勇敢計程車(feng)兵 ...


★☆   輸入文件:BlackHawk.in   輸出文件:BlackHawk.out   評測插件
時間限制:0.05 s   記憶體限制:256 MB

【題目描述】



正義的萌軍瞄準了位於南極洲的心靈控制器,為此我們打算用空襲摧毀心靈控制器,然而心靈控制器是如此強大,甚至能緩慢控制飛行員。一群勇敢計程車(feng)兵(zi)決定投彈後自殺來避免心靈控制。然而自殺非常痛苦,所以萌軍指揮官決定到達目的地後讓飛機沒油而墜落(也避免逃兵)。軍官提供兩種油:石油和中國輸送來的地溝油,剛開始飛機沒有油,飛機可以加幾桶石油和幾桶地溝油(假設石油和地溝油都有無限桶),飛機落地時必須把油耗盡,已知一桶石油和一桶地溝油所能支撐的飛行距離分別為a,b,駕駛員們必須飛往一個目的地,總距離為c.

1.最少,最多需要加幾桶油,若只有一種方案,最少和最多的是相同的.

2.總共有多少種不同的加油配方(死法)能到達目的地。

【輸入格式】

只有一行,三個正整數a,b,c

【輸出格式】

兩行,第一行為最少加幾次油和最多加幾次油,

第二行為加油方法總數。

若不存在任何方法,第一行輸出-1 -1

第二行輸出0

【樣例輸入】

樣例1:
2 3 10
樣例2:
6 8 10

【樣例輸出】

樣例1:
4 5
2
樣例2:
-1 -1
0

【提示】

樣例解釋:

樣例一:飛機加兩次石油,兩次地溝油,總次數為4,2*2+3*3=10

飛機加五次石油,不加地溝油,總次數為5,2*5+3*0=10

總共兩種

樣例二:飛機無法到達目的地

數據範圍:

對於10%的數據,a<=103,b<=103,c<=103

對於20%的數據,a<=104,b<=104,c<=106

對於50%的數據,a<=109b<=109,c<=109

對於100%數據,a<=31018b<=31018,c<=31018

三個答案分值權重分別為20%,30%,50%

【來源】

 

這個題就是個擴展歐幾裡得的裸題,也不算太裸,因為涉及到求最小值和最大值的問題

但是自己寫了一個交上去爆零,後來看了看比人寫的代碼,發現還是懵逼在45—49行里。。

4546貌似是求最大區間,,但是為什麼要/b/a呢?x為什麼要加負號呢??

還有ans1,ans2的b-a是什麼鬼。。

啊啊啊啊啊啊為什麼為什麼為什麼。。。。。。

=.=

 

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<cmath>
 5 #include<vector>
 6 #include<map>
 7 #define LL long long 
 8 using namespace std;
 9 LL a,b,c,x,y;
10 LL read(LL & n)
11 {
12     int flag=0,x=0;char c='/';
13     while(c<'0'||c>'9'){c=getchar();if(c=='-')flag=1;}
14     while(c>='0'&&c<='9')x=x*10+(c-48),c=getchar();
15     if(flag)n=-x;
16     else n=x;
17 }
18 LL gcd(LL a,LL b)
19 {
20     if(b==0)return a;
21     else return gcd(b,a%b);
22 }
23 LL exgcd(LL a,LL b,LL &x ,LL & y)
24 {
25     if(b==0)
26     {x=1;y=0;return a;}
27     LL r=exgcd(b,a%b,x,y);
28     LL tmp=x;x=y;y=tmp-(a/b)*y;
29     return r;
30 }
31 int main()
32 {
33     //freopen("BlackHawk.in","r",stdin);
34     //freopen("BlackHawk.out","w",stdout);
35     //read(a);read(b);read(c);
36     cin>>a>>b>>c;
37     LL p=gcd(a,b);
38     if(c%p!=0)
39     {
40         printf("-1 -1\n0");
41         return 0;
42     }
43     exgcd(a,b,x,y);
44 //    printf("%d %d",x,y);
45     LL xx=ceil((long double)-x/b*c);
46     LL yy=floor((long double)y/a*c);
47     LL ans=yy-xx+1;
48     LL ans1=x*c/p+y*c/p+(b-a)/p*yy;
49     LL ans2=x*c/p+y*c/p+(b-a)/p*xx;
50     if(ans<=0) printf("-1 -1\n0");
51     else cout<<min(ans1,ans2)<<" "<<max(ans1,ans2)<<endl<<ans;
52     return 0;
53 }

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • ———————————————————————————————————————————— 設計要求: 在8位8端的數位管上動態顯示76543210,快速顯示時人眼看到的效果為同時亮起 ———————————————————————————————————————————— 實現目標: ——————— ...
  • Linux基礎 學習目標 1、瞭解Linux的簡介與安裝 2、掌握Linux常用的命令 3、掌握Linux系統上JDK、Mysql、Tomcat的安裝 學習目標 1、瞭解Linux的簡介與安裝 2、掌握Linux常用的命令 3、掌握Linux系統上JDK、Mysql、Tomcat的安裝 一、Linu ...
  • 本教程會講解兩種方法,第一種方法較為簡單,且中文不容易出現亂碼。第二種方法,較為複雜,和java的jdbc連接資料庫操作類似。 操作環境: 系統:windows10 64位 資料庫:Oracle11g 用戶名:testuser 案例用表:emp R語言版本:3.4.0 64位 RStudio版本:1 ...
  • 題目 native關鍵字的作用是什麼? 解答 首先,需瞭解JNI(Java Native Interface),它是連接Java平臺與本地C代碼的一個API。 其次,用native關鍵字聲明的方法,是告訴JVM調用的方法是一個外部定義的方法,也就是本地C代碼定義的一個方法。 總結來說,native關 ...
  • 我們都知道,由於linux的穩定性,通常被作為伺服器系統,要想稱為一個PHP的高手,linux是必修之課。那麼linux系統從開機到啟動,中間到底都發生了什麼?本文來簡單探討一下中間的神秘過程。 1、 BIOS加電自檢 BIOS是英文"Basic Input Output System"的縮略詞 其 ...
  • 問題:一般我們要交換兩個變數的值,多會採取一個額外變數來實現,比如temp=a,a=b,b=temp,現在我們能不利用temp來實現交換a,b兩個變數值的目的嗎? 解決方案:^異或運算符,而且我們會發現a^a=0,還有0^a=a,依據這兩條理論,我們可以實現之前提出的問題。 代碼如下: #inclu ...
  • 基礎知識: 一、人機交互方式: 圖形化界面(GUI) 命令行方式(CLI) 二、常用的DOS命令: dir:列出當前目錄下的所有文件以及文件夾; md:創建目錄; rd:刪除目錄; cd:進入指定的目錄; cd..:返回到上一級目錄; cd/:退回到根目錄; del:刪除文件; exit:退出dos ...
  • 一,安裝編程工具併進入編程界面 首先去https://www.continuum.io/downloads/網站下載Anaconda工具並安裝;打開cmd,輸入jupyter notebook並回車(win7),他會自動幫你打開編輯界面(基於瀏覽器的);點擊new按鈕新建一個Python3的編輯框, ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...