字母a-j,用0-9對應字母使得n組資料和最大,輸入字串前面保證非0
如輸入組資料:
2 abc
bca
輸出:
1875
思路:其實就是求和,對應字元乘以相應的量級,按係數排序
如上max(101a+110b+11c)
那b:9 a:8,c:7產生最大和
同時考慮型別為字串涉及字串加法
#include
#include
#include
#include
#include
#include
#define imin numeric_limits::min()
#define imax numeric_limits::max()
#define fr(i,n) for(int i=0;i#define clc(x) memset(x,0,sizeof(x))
#define fill(x,c) memset(x,c,sizeof(x))
#define viter vector::const_iterator
using
namespace
std;
string invert(string &src)
void inverse(string &s)
}string intadd(string &rs1,string &rs2)
else
if(n==str1.length())
x=t1/10;
}while(x!=0);
str1[i]=(char)(t+48);
}else
}string &rstrresult=str1;
string strout=invert(rstrresult);
return strout;
}void init_map(map
&wmap)
string get_max(vector
&vstr)
}map
nmap;
map::iterator it = wmap.begin();
while(it!=wmap.end())
else
it++;
}map
idmap;
map::iterator it0 = nmap.begin();
char num='9';
while(it0!=nmap.end())
string res;
for(int i=0;ifor(int j=0;jcout
return res;
}int main()
cout
0;}
N 組連續子串最大和
陣列 a 中有 m 個數 將 m 個數分成 n 組 並且每組中的資料順序和原陣列中的順序保持一致,求 n 組中的資料之和最大為多少?向 dp 陣列中賦初始值 如果 m n 則 dp i i dp i 1 i 1 a i 若n為1時 即為求連續子串最大和問題 假設dp 1 i 2 i m 代表 與第 ...
取字母組串
print?取字母組成串 a b c d中取5次,每個字母都可以重複取出,形成乙個串。現在要求,串中a出現的次數必須為偶數 0次也算偶數 求可以形成多少種可能的串。public class 取字母組串 取n次,a出現偶次 public static int f int n public static...
最大字母矩陣
有乙個單詞清單,請設計乙個高效演算法,計算由清單中單詞組成的最大子矩陣,要求矩陣中的行和列都是清單中的單詞。給定乙個string陣列dic,代表單詞清單,同時給定清單的大小n,請返回最大子矩陣的面積。保證單詞清單的大小小於等於50,且某一長度的串的數量小於等於12。測試樣例 aaa aaa aaa ...