Time of Update: 2018-12-03
原文地址:http://blog.csdn.net/ariesjzj/article/details/7747876Git和SVN,CVS一樣,是一種原始程式碼控制系統。和後兩者不同的是,它不僅可以集中式管理,也可以以分布式的形式工作,即所有操作都在本地,速度快,且本地提交不會影響共用程式碼倉庫。Git功能很多,本文列了一些常見用法。配置和建立代碼倉庫設定提交時的編輯器(預設是nano):$ export GIT_EDITOR=vim 或者$ git config --global core.
Time of Update: 2018-12-03
來源:點擊開啟連結看上去資料規模很小,但是必須要剪枝,否則直接爆TLE。通過這個題可以練習奇偶剪枝。另外:還有一個最佳化方式,如果所有步數走完了門還沒關,則直接返回結果"NO".#include <iostream>#include <cstring>#include <cmath>#include <cstdlib>using namespace std;int n,m,tarstep;int tari,tarj;int si,sj;char
Time of Update: 2018-12-03
題目:點擊開啟連結注意:1、簡單類比。2、最後多輸出一行。代碼:#include <stack>#include <string>#include <iostream>using namespace std;int main(){int oper;while(cin>>oper){stack<int> tar;for(int i=0;i<oper;i++){string modify;cin>>modify;
Time of Update: 2018-12-03
題目:點擊開啟連結多校練習賽4的簡單題,但是比賽的時候想到了推導公式f(n)=f(n-1)+f(n-2)(就是斐波那契數列),最後卻沒做出來。首先手寫一下he(不是hehe)連續時的規律。0-1 1-1 2-2 3-3 4-5,斐波那契無誤。比賽的時候沒有分清楚連續的he和間斷的he的不同,只有連續的he才能用斐波那契數列來表示,而間斷點應該重新計算he出現的次數,最後根據組合數的原理相乘,即可得到最終的答案。 //dp,但是找規律也可以發現連續的是FIb數列. #include
Time of Update: 2018-12-03
題目來源:這個題是個暴搜,要求先判斷是不是直角三角形,然後再判斷是否是接近直角三角形的三角形,方法是各邊座標加一或減一,如果能夠湊成直角三角形,那麼就是近似直角的三角形。輸入輸出也挺順,記住用勾股定理進行判斷。本來還擔心卡精度的,但是pow一下子就過了,看來可能是我想多了。其實ACM中適當用用GOTO也是可以的。。。。= =:#include <iostream>#include <cmath>using namespace std;class point{public:
Time of Update: 2018-12-03
來源:點擊開啟連結最長上升子序列的考察,是一個簡單的DP問題。我們每一次求出從第一個數到當前這個數的最長上升子序列,直至遍曆到最後一個數字為止,然後再取dp數組裡最大的那個即為整個序列的最長上升子序列。我們用dp[i]來存放序列1-i的最長上升子序列的長度,那麼dp[i]=max(1,dp[j])+1,(j∈[1, i-1]); 顯然dp[1]=1,我們從i=2開始遍曆後面的元素即可。這個沒有最佳化,效率是O(N^2),可以通過二分進行進一步的最佳化。#include <iostream&
Time of Update: 2018-12-03
題目:點擊開啟連結網路流學習的下一步,最大點權獨立集。多和最小點權覆蓋集放到一起使用。分別求圖中不相鄰的點權最大/或者邊中至少有一點在集合中,求最小總權值的問題。公式:最大點權獨立集=總權值-最小點權覆蓋集。最小點權覆蓋集=圖的最小割值=最大流。和普通網路流一樣,可以使用ISAP,EK,DINIC等多種方法。建圖:多採用奇偶建立二分圖的方法。建邊時腦子一定要清楚。相鄰點要染不同的顏色,源點為0,匯點為最後的那個點。染色方法基本上是判斷if(邊+邊)%2==0源點與其串連,反之匯點與其串連。如果兩
Time of Update: 2018-12-03
連結 : http://www.lydsy.com/JudgeOnline/problem.php?id=1500如果都做到這題了,就不多說了有很多的注意點,代碼中有注釋#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int inf = ~0u>>2;#define L ch[x][0]#define R ch[x][1]#define
Time of Update: 2018-12-03
這種題我都是用樹鏈剖分做的,沒想到還有這麼簡單的方法,ORZ一下!轉自:http://blog.sina.com.cn/s/blog_51cea4040100ss3n.html給出一棵樹,每條邊有一邊權。對於任意給定的兩點,求,此兩點的最短路徑上,邊權的最大值。 對於:藍圈中任意一點與紅圈中任意一點的路徑上的最大邊必定是8。 根據這個現象,可以把上述的樹重建成如所示。新圖的葉子結點為原圖的所有結點,內部結點為原圖的邊權,建邊順序又下小到大。:新圖的紅色編號為原圖的結點編號,藍色編號為原圖的邊。這
Time of Update: 2018-12-03
連結
Time of Update: 2018-12-03
http://codeforces.com/problemset/problem/223/E題意:
Time of Update: 2018-12-03
來源:點擊開啟連結看上去很難,比賽的時候光看hehe了,也沒有想。但是仔細想想,是可以想出來的。一個棋盤上每個格子擺放一個硬幣,硬幣有正面1和反面0之分。現在兩個人可以按照規則翻硬幣,選擇(x,y),要求(x,y)的硬幣必須是正面,那麼從(x,y)向右下角所有的硬幣都被翻轉。知道某個人無法翻(所有硬幣都是反面)為止,這個人判輸。有一種特殊情況,那就是右下角,每次都被反轉。無論如何翻,如果右下角開始的是1,則Alice贏,反之後手贏。因為其他的硬幣不論怎麼翻,右下角的硬幣永遠是這樣,所以其他的策略
Time of Update: 2018-12-03
http://acm.hdu.edu.cn/showproblem.php?pid=3487提取一段區間,插入到另一個位置,只要寫好了關鍵的三個函數就很輕鬆了/*區間翻轉,注意標記的下傳*/#include<cstdio>#include<cstring>#include<algorithm>using namespace std;#define L ch[x][0]#define R ch[x][1]#define KT (ch[ ch[rt][1] ][0
Time of Update: 2018-12-03
給你一棵樹,然後有m個操作,每個操作有兩個數 a b,表示給從a到b的簡單路徑上的邊權都加1,最後要你輸出每條邊的邊權解法1:dfs用樹鏈剖分做的話就是很裸的題目了,但是這道題沒有讓你對路徑上的邊權進行求和等操作,只是要你在最後輸出每條邊的邊權,所以有一種更加簡便的方法對於一個操作 a b 我們只需用個cnt數組標記一下cnt[a]++ cnt[b]++ cnt[lca(a,b)] -=
Time of Update: 2018-12-03
Problem DescriptionToday Zhanyl (sister Zhan as you know) receives a task about set operation. Although she is very good at this task, but you know she is very lazy so that she wants you to help her write a program to complete this task. SurlyZhanyl
Time of Update: 2018-12-03
http://poj.org/problem?id=3580注意,inf設的不要太小,還有對於題目輸入資料的各種處理(可能有非法資料),要注意判斷,具體見代碼#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int inf = ~0u>>2;#define L ch[x][0]#define R ch[x][1] #define KT
Time of Update: 2018-12-03
題目:點擊開啟連結遞推問題實現起來很簡單,但得到遞推公式確實很麻煩,就像DP一樣。分析(部分出自HDU的PPT):設:F(n)表示n個人的合法隊列,則:按照最後一個人的性別分析,他要麼是男,要麼是女,所以可以分兩大類討論: 1、如果n個人的合法隊列的最後一個人是男,則對前面n-1個人的隊列沒有任何限制,他只要站在最後即可,所以,這種情況一共有F(n-1);2、如果n個人的合法隊列的最後一個人是女,則要求隊列的第n-1個人務必也是女生,這就是說,限定了最後兩個人必須都是女生,這又可以分兩種情況:(
Time of Update: 2018-12-03
ACM CLUB的一個小比賽,每周一次,前幾名可以換一些小東西。題目:點擊開啟連結題目A——整數統計方法:手動統計相同字元 遇不相同的便輸出相同字元的個數。#include <iostream>#include <cstring>#include <string>using namespace std;int main(){int testcase;cin>>testcase;while(testcase--){string
Time of Update: 2018-12-03
人生就像一個個節點,節點中或許有成功,失敗,滿足,遺憾,但是只要它是不可複製的,在日後,便是美好。 ——我們的教練
Time of Update: 2018-12-03
題目:點擊開啟題目連結類比題。一場考試一共5道題,滿分(都做出來)100,都做不出來50,如果你做對4道,而且做對的時間是所有做對4道題中的人中的前一半及以前(如果4個人做對4個,取前二,如果3個人做對4個,取第一),那麼你將獲得95分,剩下的人獲得90分,同樣85,80,75,70……ETC。。看似挺簡單,但是判斷二分之一著實還是費了一些功夫的,類比題都很長。。也很容易出錯,還有一個trick。在僅有1個人做對的情況下,這個人也是要加五分的,但是如果直接無腦除法的話1/2=0,沒有人被加5分,