1. 程式人生 > >矩形的個數(long long)

矩形的個數(long long)

/*  
* 程式的版權和版本宣告部分:  
* Copyright (c) 2013,鄭州大學SIAS國際學院    
* 作    者:  王  傑
* 完成日期:2014 年 1 月 11 日  
*  
* 對任務及求解方法的描述部分:
* 輸入描述: 略或見註釋、總結
* 問題描述: 略或見註釋、總結
* 程式輸出: 略或見註釋、總結
* 問題分析: 略或見註釋、總結
* 演算法設計: 略或見註釋、總結
*/

#include<stdio.h>
int main()
{
    int a,b,count;
    while(scanf("%d%d",&a,&b)!=EOF){
        count=0;
        for(int i=0;i<a;i++)
            for(int j=0;j<b;j++){
                count+=(a-i)*(b-j);
            }
        printf("%d\n",count);
    }
    return 0;
}

執行結果:錯誤!原因:count的值越界

改進:採用long long,如:

#include<stdio.h>
int main()
{
    long long a,b,count,i,j;
    while(scanf("%lld%lld",&a,&b)!=EOF){
        count=0;
        for(i=0;i<a;i++)
            for(j=0;j<b;j++){
                count+=(a-i)*(b-j);
            }
        printf("%lld\n",count);
    }
    return 0;
}

執行結果:顯示非法(本人用的是VC++6.0)


換code::blocks:  執行結果:

總結:對於算術型的結果,一定要考慮最終結果的範圍。還有不同的型別不同的編譯器不同的支援,如long longVC++6.0就不支援,但是code::blocks就支援

但是這並沒有結束,因為程式太慢了,在OJ上提交顯示超時

再改進:引用公式 count=a*(a+1)/2 * b*(b+1)/2

總結:一波三折!先是結果可能越界,然後為了解決越界問題,就用long long,接著又是編譯器不支援,就換編譯器,然後結果對了,但是在OJ上提交的時候又是超時,最後改進演算法,由原來的一步一步計算變為公式計算,不得不說,數學公式有時候的威力真大很大啊!!

今天是2014年第一次發博文,好久沒發博文了,也好久沒有做題了,有點生疏了。再有四個月就要比賽了,加油吧!現在寒訓,好好的利用這些時間補補學學,下學期開學後好好學習,現在才是剛開始,雖然有點難,但是一定要往前走,不能停,只要堅持就有希望!!   要學會提高效率!! 花費時間固然重要,但效率更重要!沒有效率盲目的花費時間學習,那都是在浪費時間,不是花費!是浪費!!

相關推薦

矩形個數(long long)

/* * 程式的版權和版本宣告部分: * Copyright (c) 2013,鄭州大學SIAS國際學院 * 作 者: 王 傑 * 完成日期:2014 年 1 月 11 日 * * 對任務及求解方法的描述部分: * 輸入描述: 略或見註釋、

HashMap簡單實現詢問long long範圍內資料出現的個數

題意:給出n個long long範圍內的數,以及q個詢問,每次詢問x 輸出數x出現的次數 思路:將每個數取模%MOD,用鄰接表儲存資料,當前節點儲存的是一個key的值v,以及v出現的次數,和與它取mod相等的上一個數 程式碼:#include <iostream

POJ 2429 long long 質因數分解

cst factor pro calc can 返回 a + b names 素數 GCD & LCM Inverse Time Limit: 2000MS Memory Limit: 65536K Total Submissio

__int64與long longlong的區別

ini operator 一個 version 隱式轉換 sca char ann 擴展 首先聲明轉自 http://www.cnblogs.com/ChenDinghao/p/6480937.html 首先來看一看int、long、long long的取值範圍 int

int ,long long等範圍

範圍 bsp nbsp sig 最小 int long long 最小值 最大值 unsigned int 0~4294967295 int -2147483648~2147483647 unsigned long 0~4294967295long -2

int、longlong long取值範圍

family lin line ng- sig color long long tom p s unsigned int 0~4294967295 int -2147483648~2147483647 unsigned long 0~4294967295

Long Long Message POJ - 2774

ide ostream 符號 http poj mes get names class Long Long Message POJ - 2774 題意:求兩個串的最長公共字串。 用特殊符號連接兩個字符串,後綴數組。 枚舉height,如果sa[i]和sa[i-1]分別屬

牛客練習賽7 E 珂朵莉的數列(樹狀數組+爆long long解決方法)

src main stdin scanf return n) can print con https://www.nowcoder.com/acm/contest/38/E 題意: 思路: 樹狀數組維護。從大佬那裏學習了如何處理爆long long的方法

【POJ2774】Long Long Message(後綴數組)

火車票 字符串 cat ios swa char 們的 same getc 【POJ2774】Long Long Message(後綴數組) 題面 Vjudge Description Little cat在Byterland的首都讀物理專業。這些天他收到了一條悲傷地信息:

[POJ2774]Long Long Message

long esp cstring poj2774 href line 子串 class max vjudge 一句話題意 給兩個串,求最長公共子串。 sol 把兩個串接在一起求後綴數組。其實中間最好用一個沒有出現過的字符連接起來。 判斷如果\(SA[i]\)和\(SA[i-

POJ.2774.Long Long Message(後綴數組 倍增)

前綴 中間 題目 std str 後綴 string pri -m 題目鏈接 \(Description\) 求兩個字符串最長公共子串 \(Solution\) 任何一個子串一定是某個後綴的前綴 可以將兩個字符串拼在一起,中間用一個從未出現過的字符隔開,這樣ht[]的最大值

快速冪取模(當數很大時,相乘long long也會超出的解決辦法)

結合 超出 但是 long 數字 也會 連續 return result 當幾個數連續乘最後取模時,可以將每個數字先取模,最後再取模,即%對於*具有結合律。但是如果當用來取模的數本身就很大,采取上述方法就不行了。這個時候可以借鑒快速冪取模的方法,來達到大數相乘取模的效果。

long long 的輸入輸出問題

src alt -i 圖片 輸出 long blog 技術分享 www 參考博客:https://www.byvoid.com/zhs/blog/c-int64 long long 的輸入輸出問題

[POJ 2774]Long Long Message

math subset printf += get() std http namespace des Description 題庫鏈接 給定兩個字符串 \(A\) 和 \(B\) ,求最長公共子串。 \(1\leq |A|,|B|\leq 100000\) Solution

csu oj 1343 Long Long

來看 ont 開始 描述 color 個數 sample nbsp for循環 Description 現在有兩個單調遞增序列,第一個序列有N個整數,第二個序列有M個整數,現在你可以從第一個序列中選一個數x,然後從第二個序列中選一個數y,那麽有多少種情況滿足x+y

(又FST在long long!!)Codeforces Round #293 (Div. 2)C. Anya and Smartphone

我的天,又FST在  long long piapiapia 扇死  題意:(我研究了半天才看懂) 第一行輸入應用總數 n ,要一次開啟應用的總數 ,每個螢幕最多的應用數。 第二行按位子(1~n)順序輸入應用的編號; 第三行輸入要依次開啟的應用。 問我們要求需

152_關於int、short int、long int、long long 的區別

關於int、short int、long int、long long 的區別 2016年04月18日 18:31:12 閱讀數:11170 標籤: C++int 更多 個人分類: C++ 版權宣告:本文為博主原創文章,未經博主允許不得轉載

要時刻注意 long long

long long是一個神奇的東西,它會伴隨你的整個OI生涯。(用Python肯定不會有這事)無論你有多強,你都要注意long long。即使你去考NOI,你還是得注意。 在今天的模擬賽中,我又一次得到了慘痛的教訓。原本T1的標算因沒開long long,變成了50分。我從rank10->

long long 範圍

unsigned   int     0~4294967295   (10位數,4e9) int           

c語言longlong long的取值範圍

溢位和取值範圍 C語言的整型溢位問題 整數溢位 int、long int 、long long int 佔用位元組 《C和指標》中寫過:long與int:標準只規定long不小於int的長度,int不小於short的長度。 double與int型別的儲存機制不同