Ultraviolet A 1401 Remember the Word (Trie + DP), 1401 trie
Question: n (n
Idea: Trie: create a word as Trie, and then run "dp" and "dp [I]" to indicate the situation where the I-th letter in the string starts, then, for each State, you only need to find the word starting with the corresponding letter on the Trie tree, and then dp [I] = sum {dp [I + len (x)]} after status transfer, x is one of n words and
UVA 1401-remember the Word[Topic link]Test instructions: given some words. and a long string. Ask this long string split into existing words, can split into several waysTrain of thought: Trie, the word is built Trie first. Then the DP. Dp[i] Indicates a case that begins with I, and then each state simply finds the corresponding I-beginning word on the trie tree, then dp[i] = Sum{dp[i + len]} for state transfer toCode: #include UVA
tree), then try to find s[i in tire. L]. Specific reference code.The code is as follows:#include #include#includeusing namespacestd;Const intMAXN =4000* -+Ten;//4,000 words, each word the longest is 100, at most there are so manyConst intMAXM =300010;Const intMoD =20071027;intD[MAXM];CharSS[MAXM], t[ the];structtire{intch[maxn][ -]; intVAL[MAXN]; intsz; voidInit () {sz =1; Memset (Val,0,sizeof(Val)); memset (ch[0],0,sizeof(ch[0])); }//Initialize intIdxCharc) {returnA O'a'; }//Get number v
]-'a'; P= p->Next[id]; if(p = = NULL)//if it is an empty set, the string that is prefixed by this is not saved returnret; if(P->v = =-1){//a string already in the character set is the prefix of this stringRet= (ret+dp[i+1])%MOD; } } returnret;}intDeletetrie (trie*T) { inti; if(t==NULL)return 0; for(i=0; i) { if(t->next[i]!=NULL) Deletetrie (T-Next[i]); } //Free (T); Delete(T); return 0;}intMain () {Charstr[300005]; Charstr2[ the]; intI,s,len,mcase=0; while(~
#include If there are 4 numbers, 5*1 5*5*5 5*5*3 5*91. Become 5*n1 5*n2 5*n3 5*n4 There are 4 numbers is a multiple of 52. Become 5*n1 5*5*n5 5*5*n6 5*n4 There are 2 numbers is a multiple of 253. Become 5*n1 5*5*5 5*5*n6 5*n4 There are 1 numbers is a multiple of 125The above is to avoid repetition, only 1 layers at a time (one-off)The number of 5 per addition is actually the number on the rightShould be the theorem of number theory: for factorial n! , the number of 1 to N is a multiple of 5 for
Test instructions: Give n (nIdea:Trie, first put the word into Trie, and then dp,dp[i] denotes the beginning of the first letter of the string, and then each state as long as the Trie tree found the corresponding letter beginning word, and then dp[i] = sum{dp[i + len (x)]} To make a state transition. This x is one of n words that can be queried with trieCode#include Attention:The Find function must not strlen (), otherwise the timeout t_t. Because each call will be one length, time complexity is
Trie+dpTerry Petition training on the problem.It says that Italy is a string that can have a number of small strings composed.For exampleAbcd4ABCdAbABCD=A+B+CD. ABCD=AB+CD;Recursion is: From the last one forward. dp[i]=dp[i]+dp[i+ Len[x]] x is appended to the node in the order it was entered. is the prefix for I~strlen (S). s[1,2,3,..., i,... Len]When building the trie tree, the order is also appended to the node.At the end of the search, find out how many strings are prefixed and add up the pre
Description
Select the leftmost Number of the sequence, and insert it to any position in the sequence. The number of times that the above operation must be repeated at least to change the sequence to an incremental sequence.
The first line of input contains an integer.
T(
T> 0), indicating a total
TGroup test data. For each group of test data, the first row contains an integer.
N(1 ≤
N≤ 105), indicating a total
NInteger. The second line contains
NDifferent integers (all of which are in the range
Error installing Office 2010 prompts Microsoft Office Professional Plus 2010 to fail during setup. Error 1401 ... "To download the installation file again, what is the cause of this? How do you solve it? This article introduces you in detail.
The reason for the error: mainly because some anti-virus software or ghost system changed the relevant registry permissions.
Workaround: Start Menu-run-enter "regedit", open Registry Editor, and navigate
Title Link: http://poj.org/problem?id=1401
Test instructions: Find the number of the end of the n! 0.
Idea: This is a mathematical formula to solve the problem. The method is that given a number N, the result is: [n/5]+[n/25]+[n/125]+............+[n/(5^k)], where 5^k is the largest number not greater than N. The specific principle of self-Baidu can.
Code:
#include
Reprint please indicate the source, thank you http://blog.csdn.net/ACM_cxlove? Viewmode = contents by --- cxlove
The first write bidirectional BFs.
Bidirectional BFS searches from the start and end points. If the intersection points appear, the
I started to use the memory-based search. I am an idiot. the string length is 30 W, and stack explosion is affirmative.
DP transfer equation: Str [I-> J] If DP [I] + = DP [J + 1] appears
Then, use the dictionary tree to check whether STR [I-> J] has
Trie + dp
Dictionary tree Training Questions in the big white book.
The question is how many small strings a string may contain.
For example
ABCD
4
A
B
CD
AB
ABCD = a + B + CD; ABCD = AB + CD;
Recursion: forward from the last digit, DP [I] = DP [I]
/* I am afraid that I will never write it... it is always strange to store the status, but the status in bfs dfs is very important. I wanted to write this question before... the AC is finished .. */ # include # include # include # include
This question is N! The number of zeros that follow. Note that N may be up to 9 times of 10. Haha, how many 2 and 5 factors can be enumerated directly for 1-N, and then a small value will definitely time out.However, I tried again and time out.Then
This question is mainly implemented in recursion.
Set a word W, which is composed of (w1, w2, ·, wn) letters to determine the combination of words.
Given any suffix (wi, wi + 1,..., wn), you must find its prefix to determine the number of
Question: on the 8*8 checkers board, you are given two States, each of which has four points to determine whether a status can reach another status within 8 steps.
Analysis: Given the start and end statuses, it is a typical bidirectional wide
Http://uva.onlinejudge.org/index.php? Option = com_onlinejudge & amp; Itemid = 8 & page = show_problem & amp; Category = & amp; problem = 4147
Question: Given a string and several words, there are several ways to use words to form a string. First,
Solitaire
Time Limit: 2000/1000 MS (Java/others) memory limit: 65536/32768 K (Java/Others)Total submission (s): 2526 accepted submission (s): 822Problem descriptionsolitaire is a game played on a chessboard 8x8. the rows and columns of the
The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion;
products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the
content of the page makes you feel confusing, please write us an email, we will handle the problem
within 5 days after receiving your email.
If you find any instances of plagiarism from the community, please send an email to:
info-contact@alibabacloud.com
and provide relevant evidence. A staff member will contact you within 5 working days.