Time of Update: 2018-12-03
ps:重新看了一下題目,發現zoj的n沒限制。。。而uva跟poj卻限制到10000以內,所以前一個做法的預先處理不一定夠大,還是第二個方法強悍啊 不得不說,因為這題,我知道了poj的資料很水。。zoj這題過不了,uva卻過了。//不懂,覺得大數會逾時,上網搜,題解//f(i)=f(i-1)*i%10,i%5=0;//f(i)=mod(2,(n-1)%4+1))*f(n)%10,i%5!=0,n=i/5;//mod(2,(n-1)%4+1))的取值範圍是2,4,6,8#include <
Time of Update: 2018-12-03
剛開始分析是直接枚舉,1~sqrt(n),想著想著都是偶數對啊,應該全是no,但是範例有yes,再細想,就發現如果是平方數那就沒配對了,這樣只需要判斷是否平方數,可惜交的時候WA啊!!也不知道為什麼,把int改為long就AC了,但題目說n <= 2^32 - 1啊。。int範圍啊,怎麼回事。。。#include <iostream>#include <cmath>#include <string>using namespace
Time of Update: 2018-12-03
題目地址: http://acm.hdu.edu.cn/showproblem.php?pid=4336 12年多校第4場 容斥原理 當時比賽推出來 2個機率的,3個機率的推得離容斥非常遠,所以木有想到容斥。 #include<cstdio>int main(){int n,i,num,p[25];double s[25],res,tmp;while(~scanf("%d",&n)){for(i=0;i<n;i++)scanf("%lf",&s[i]);
Time of Update: 2018-12-03
Count 時間限制(普通/Java) : 1000 MS/ 3000 MS 運行記憶體限制 : 65536 KByte總提交 : 5 測試通過 : 1 描述 最近Snow_storm一直被一個問題困擾著:他將1到N按順序從左至右寫在紙上,然後在每個數字前交替添加+、-號,並且計算出最後的結果。例如:當N=12時,+1 -2 +3 -4 +5 -6 +7 -8 +9 -1+0 -1+1 -1+2 =
Time of Update: 2018-12-03
題目地址: http://acm.hdu.edu.cn/showproblem.php?pid=1042 初學練手題~~~ =============================================================================================================C++流 ~~ 很簡單,不必每位單獨處理,每100 000
Time of Update: 2018-12-03
題目地址: http://acm.hdu.edu.cn/showproblem.php?pid=3265 方法 : 線段樹 + 掃描線 昨晚做了哈,想用個高效的方法(每個“回”字只用兩次),貌似想搓了,不得已重新回到暴力(每個“回”字分成4份)。 另外,因為利用的是點化區間的方法。RE了一次,原因是沒判斷 if(p[i].y2>p[i].y1) ,
Time of Update: 2018-12-03
返回目錄 題目大意:輸入一串數,輸出出現次數最多的那個數,若有多個數符合則輸出最大的那個 。 題目類型: 基礎類比題 題目分析: 把一組數升序排序,然後從頭到尾掃描更新出現最多次數的數。 代碼: #include<cstdio>#include<cstring>#include <algorithm>//sortusing namespace std;#define MAXN 1010int a[MAXN];int n;int f(){int ans,
Time of Update: 2018-12-03
題目地址: http://acm.hdu.edu.cn/showproblem.php?pid=4267 樹狀數組。 2012長春網賽。。。 46分左右1Y。。 一開始被小胖誤導去敲線段樹,後來發現用線段樹敲,空間需求太大,並且操作麻煩。。。 重新寫了個樹狀數組,花了十多分鐘。 區間更新、單點查詢。。。 其實只要能想到方法,敲起來很容易~。。。 首先要說一下, ( u - i ) % k == 0,可以轉化一下,變成 i % k == u % k == mod
Time of Update: 2018-12-03
題目地址: http://acm.hdu.edu.cn/showproblem.php?pid=1556 樹狀數組練手。 區間更新,單點查詢。 #include<cstdio>#include<cstring>int tree[110000];int n;void update(int v,int val){while(v>0){tree[v]+=val;v-=v&-v;}}int query(int v){int sum=0;while(v<=n)
Time of Update: 2018-12-03
依然最短路徑。。。寫得好麻煩,黨的才67行。。我的。。開始沒理解題意,理解偏了, 看了黨的,大悟。。 #include <stdio.h>#include <stdlib.h>#include <limits.h>#include <string.h>int n,r,x,y,weight,count = 1,result;int map[202][202];void input(){ int num = 0,a,b,i; char
Time of Update: 2018-12-03
SWUN題目地址: http://218.194.91.48/acmhome/problemdetail.do?&method=showdetail&id=1307HDU題目地址: http://acm.hdu.edu.cn/showproblem.php?pid=1495 初看挺難,其實就是基礎的BFS,練練手。。。 竟然還找到個規律,寫了個240B長度的代碼~~ 做法就不說了,代碼應該很好理解~~ #include
Time of Update: 2018-12-03
CD8 時間限制(普通/Java) : 1000 MS/ 3000 MS 運行記憶體限制 : 65536 KByte總提交 : 118 測試通過 : 25 描述
Time of Update: 2018-12-03
一星期沒敲代碼啦。。。哈哈。。敲起來腦子格外清晰~~ 不過DIJ的標記忘寫了,WA了幾次。。。還是不熟練啊。。。笨笨。。 看著My Code感覺好好~~用了函數 ,不是以前的混亂狀態啦 嘻嘻 感覺很好~~ 排名11。。。佔用記憶體好大啊。。。 話說,網通開CSDN真快。。。 #include <stdio.h>#include <stdlib.h>#include <memory.h>#include <limits.h>#define N 10
Time of Update: 2018-12-03
代碼: #include<cstdio>#include<cstring>using namespace std;#define MAXN 10000int a[MAXN];int d[MAXN];int vis[MAXN];int n;int ans;int dp(int cur, int x)//帶入x為了判斷當前是增還是減{if(vis[cur]) return d[cur];int max=1;//最少也是1for(int i=cur+1; i<n;
Time of Update: 2018-12-03
題目地址: http://acm.hdu.edu.cn/showproblem.php?pid=4123 樹形DP + RMQ + 貪心 原本貪心那塊寫的是二分,結果TLE了,後來想到了一個貪心~~ 樹形DP寫搓了,dfs2
Time of Update: 2018-12-03
很大一串文字,其實都沒啥用。 很典型的迷宮題。王子救公主。 Y是王Y子,C是公主,P是傳送陣(可免費瞬間傳送到任何一個P),#是牆,*是收費站(每次經過*都要花費金錢)。 問能不能救到公主,能救的話,最少花費是多少?
Time of Update: 2018-12-03
題目地址: http://codeforces.com/problemset/problem/118/D 這題記住的方法,主要是多加一維,用於區分士兵兵種。 而後枚舉每一種可能長度,接在其它兵種後面,於是不會有超過限制的連續長度。 #include<iostream>#include<cstdio>using namespace std;int dp[110][110][2]={0};const int mod=100000000;int main(){int
Time of Update: 2018-12-03
伊邪那美(Ⅱ) 時間限制(普通/Java) : 1000 MS/ 3000 MS 運行記憶體限制 : 65536 KByte總提交 : 30 測試通過 : 5 Special Judge描述 伊邪那美是一種究極幻術,中招的人會陷入一個無限自迴圈的術中世界。 術中世界一共有n條通道,其中的一些通道會讓你回到現實世界,另一些通道會讓你再次回到術中世界,你只記得最近走過的k個通道。(例如k=1,你第一次走4號通道,並且回到了術中世界,那麼第二次選擇時,你記得4
Time of Update: 2018-12-03
伊邪那美時間限制(普通/Java) : 2000 MS/ 6000 MS 運行記憶體限制 : 65536 KByte總提交 : 65 測試通過 : 26 Special
Time of Update: 2018-12-03
題目地址: http://acm.hdu.edu.cn/showproblem.php?pid=4325 先離散化,然後建立線段樹。 詢問時,二分尋找,轉化成 離散化之後的新位置。 需要注意的是,離散化時區間間隔為2 。 原因很簡單,1~3、7~10、1~10。若間隔為1,則離散化之後為: 1~2、3~4、1~4。 那麼,4~6 這一段區間,只被包含於 1~10