Time of Update: 2018-12-03
這個題糾結死我了,最開始是在高逸涵的論文《數位計數問題解法研究》中看到的,論文中只說了這個題的思路,沒有代碼實現,所以我自己按照他得思路寫了好久,又Debug了好久好久,最後終於出來了。糾結到死....題意:定義兩個數的比較方法,各位元字之和大的數大,如果數字和相等則按字典序比較兩個數的大小。輸入n,k,要求輸出兩個結果: 1. 將1~n的數排序後,數字k的排名; 2. 將1~n的數排序後的第k個數;他得思路就是寫5個函數:1. getSum1(int L, int
Time of Update: 2018-12-03
/** 傳說中的 “按位dp” 或 “數位dp”。 dp[len][0] 代表數字長度為len不含49的個數 dp[len][1] 代表數字長度為len不含49但是以9開頭的個數(顯然dp[len][1]包含在dp[len][0]中) dp[len][2] 代表數字長度為len含有49的個數 狀態轉移方程如代碼中所示。
Time of Update: 2018-12-03
-----我的AC自動機-----•題意:有m種DNA序列是有疾病的,問有多少種長度為n的DNA序列不包含任何一種有疾病的DNA序列。(僅含A,T,C,G四個字元)•範例m=4,n=3,{“AA”,”AT”,”AC”,”AG”}•答案為36,表示有36種長度為3的序列可以不包含疾病這個和矩陣有什麼關係呢???•是例子{“ACG”,”C”},構建trie圖後,從每個結點出發都有4條邊(A,T,C,G)•從狀態0出發走一步有4種走法: –走A到狀態1(安全); –走C到狀態4(危險);
Time of Update: 2018-12-03
/** 剛開始自己寫的求最短路徑的演算法,WA了,估計是自己的演算法有漏洞。 後來看別人的,才發現有兩種求最短路徑的演算法: dijkstra演算法 和 Floyd演算法。 Floyd演算法比較好理解一點,就是用一個三重迴圈。 但是N^3 的時間複雜度。**/ #include <stdio.h>#define INF 100000 //無窮大int num, a[101][101];void Floyd(void)
Time of Update: 2018-12-03
Collecting BugsTime Limit: 10000MSMemory Limit: 64000KTotal Submissions: 666Accepted: 255Case Time Limit: 2000MSSpecial JudgeDescriptionIvan is fond of collecting. Unlike other people who collect post stamps, coins or other material stuff, he
Time of Update: 2018-12-03
做了第一道差分約束系統的題後,趁熱打鐵再來一道。沒想到這題就是純粹的對短路徑問題卡時間的題目。理解題意有需要注意的地方,我開始是SPFA(1),得到dis[n],再SPFA(n),得到dis[1],再取兩者較大值。實際上只用算前者即可,dis[n]即為答案。 1. 剛開始直接寫了SPFA的隊列實現,不用說肯定是逾時. 2.
Time of Update: 2018-12-03
這題雖然代碼很簡單,但這是我第一題用dp求數學期望的題目,也算是入個門吧.../** dp求期望的題。 題意:一個軟體有s個子系統,會產生n種bug。 某人一天發現一個bug,這個bug屬於某種bug,發生在某個子系統中。 求找到所有的n種bug,且每個子系統都找到bug,這樣所要的天數的期望。 需要注意的是:bug的數量是無窮大的,所以發現一個bug,出現在某個子系統的機率是1/s, 屬於某種類型的機率是1/n。 解法:
Time of Update: 2018-12-03
動態規劃太深奧了,太難規了,這題又是看《程式設計引導及線上實踐》上面的思路和代碼做的,具體規劃思路如下: 用f[i][j]表示,取i個候選人,使其辯控差為j 的所有方案中,辯控和最大的那個方案的控辯和。要求f[i][j] 顯然要從一個可行的方案 f[i-1][x] 演化而來。可行方案f(i-1, x)能演化成方案f(j, k)的必要條件是:存在某個候選人k,k 在方案f(i-1, x)中沒有被選上,且x+V(k) = j;(V(k)為第k個人的控辯差);選出 f(i-1, x)
Time of Update: 2018-12-03
數的整除性質: 1、如果a、b都能被c整除,那麼,它們的和與差也能被c整除。 2、如果b與c的積能整除a,那麼b與c都能整除a。 3、如果b、c都能整除a,且b和c互質,那麼b和c的積能整除a。 4、如果c能整除b,b能整除a,那麼c 能整除a。 5、a個連續自然數中必有一個數能被a整除。 數的整除特徵:能被2整除的數的特徵:個位上是0、2、4、6、8的整數。能被5整除的數的特徵:個位上是0、5的整數。
Time of Update: 2018-12-03
One Person GameTime Limit: 1 Second Memory Limit: 32768 KB Special JudgeThere is a very simple and interesting one-person game. You have 3 dice, namely Die1, Die2 and Die3. Die1 has K1 faces. Die2 has K2 faces. Die3 has K3 faces. All the
Time of Update: 2018-12-03
8616 汽車拉力比賽時間限制:500MS 記憶體限制:1000K提交次數:3 通過次數:3題型: 編程題 語言: 無限制描述SCAU車隊要去參加汽車拉力比賽啦。拉力比賽中,每輛汽車需要一個駕駛員和一個導航員。SCAU車隊一共有有N個駕駛員和N個導航員,每個
Time of Update: 2018-12-03
現由斯特林[striling]公式可得: lnN!=NlnN-N+0.5ln(2N*pi)而10的7次方階乘的位元等於: log10(N!)取整後加1 log10(N!)=lnN!/ln(10) #include<iostream>#include<cmath>using namespace std;const double PI=3.14159265;int main(){ int
Time of Update: 2018-12-03
// ACM.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include<stdio.h>#define M 5843 long a[M+4]; long min(long x,long y) { if(x<=y)return x; else return y; } void
Time of Update: 2018-12-03
之前安裝QT-4.7.2,由於習慣了在命令列下編譯源檔案,我在網上搜了一下關於QT環境變數的配置方法,配置很簡單,在/etc/profile檔案裡添加下面幾行語句: export QTDIR=/opt/qtsdk-2010.05/qt 這個路徑根據自己安裝的位置進行配置 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$QTDIR/lib export PATH=$PATH:$QTDIR/bin
Time of Update: 2018-12-03
http://acm.hdu.edu.cn/showproblem.php?pid=1005A number sequence is defined as follows:f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7.Given A, B, and n, you are to calculate the value of f(n).1 <= A, B <= 1000, 1 <= n <= 10
Time of Update: 2018-12-03
演算法一:直觀法,時間複雜度O(n^3)#include<cstdio>#include<iostream>using namespace std;int maxsubsequencesum(const int a[], int n){ int thissum, maxsum, k; maxsum = 0; for(int i =0; i<n; i++) for(int j= i;j<n; j++)
Time of Update: 2018-12-03
超經典電腦主機網關的作用是什嗎?假設你的名字叫小不點,你住在一個大院子裡,你的鄰居有很多小夥伴,在門口傳達室還有個看大門的李大爺,李大爺就是你的網關。當你想跟院子裡的某個小夥伴玩,只要你在院子裡大喊一聲他的名字,他聽到了就會回應你,並且跑出來跟你玩。但是你不被允許走出大門,你想與外界發生的一切聯絡,都必須由門口的李大爺(網關)用電話協助你聯絡。假如你想找你的同學小明聊天,小明家住在很遠的另外一個院子裡,他家的院子裡也有一個看門的王大爺(小明的網關)。但是你不知道小明家的電話號碼,不過你的班主任老
Time of Update: 2018-12-03
第二個dp求數學期望的題,如果看不懂,請看我的第一個dp求期望的題(Poj 2096)/** dp求期望的題。 題意: 有三個均勻的骰子,分別有k1,k2,k3個面,初始分數是0, 當擲三個骰子的點數分別為a,b,c的時候,分數清零,否則分數加上三個骰子的點數和, 當分數>n的時候結束。求需要擲骰子的次數的期望。 題解: 設 E[i]表示現在分數為i,到結束遊戲所要擲骰子的次數的期望值。 顯然 E[>n] = 0;
Time of Update: 2018-12-03
運算方法有六種:& 與運算 | 或運算 ^ 異或運算 ~ 非運算(求補) >> 右移運算 << 左移運算 運用這些基本的運算,我們可以解決acm所需的各種運算,給Bit賦1,賦0,給他的值取反,還有好多段操作。如下: 功能 | 樣本 | 位元運算----------------------+---------------------------+--------------------去掉最後一位 |(101101->10110) |
Time of Update: 2018-12-03
HDU 動態規劃(46道題目)傾情奉獻~ 【只提供思路與狀態轉移方程】 收藏 Robberies http://acm.hdu.edu.cn/showproblem.php?pid=2955 背包;第一次做的時候把機率當做背包(放大100000倍化為整數):在此範圍內最多能搶多少錢 最腦殘的是把總的機率以為是搶N家銀行的機率之和… 把狀態轉移方程寫成了f[j]=max{f[j],f[j-q[i].v]+q[i].money}(f[j]表示在機率j之下能搶的大洋);