摘要:
题目大意:原题链接 给你一个字符串,首先是计算出一个按正常编码的编码长度,其次是计算出一个用霍夫曼编码的编码长度,最后求正常编码的长度除以霍夫曼编码长度的比值,保留一位小数。 解题思路:需要知道 1.正常的编码长度的话,由于都是ASCII码值所以编码长度都为8,所以总长度就是8*字符串的长度Len就 阅读全文
摘要:
题目大意:原题链接 锯木板,锯木板的长度就是花费。比如你要锯成长度为8 5 8的木板,最简单的方式是把21的木板割成13,8,花费21,再把13割成5,8,花费13,共计34,当然也可以先割成16,5的木板,花费21,再把16割两个8,花费16,总计37,现在就是问你花费最少的情况。 思路:转化为哈 阅读全文
摘要:
#include #include const int maxn=1e6+5; using namespace std; int r[maxn],c[maxn]; char pic[maxn]; void Swap(int &x,int &y) { int temp=x; x=y; y=temp; } int main() { int n,m,op,x,y,T... 阅读全文
摘要:
#include using namespace std; int n,A[505][505]; int B[505][505],C[505][505]; int Read() { int d=0; char ch,t=0; while((ch=getchar())==' '||ch=='\n') ; if(ch=='-') t=1; else d=ch... 阅读全文
摘要:
题目大意:原题链接 给定三个n*n的矩阵A,B,C,验证A*B=C是否成立. 所有解法中因为只测试一组数据,因此没有使用memset清零 Hint中给的傻乎乎的TLE版本: AC版本解法一:神奇的输入优化 之前就看到过几次一个神奇的输入模板,不知道这段代码是否就是那个(提交多次,觉得估计在提交人数多 阅读全文
摘要:
题目大意:原题链接 给定n个节点,任意两个节点之间有权值,把这n个节点分成A,B两个集合,使得A集合中的每一节点与B集合中的每一节点两两结合(即有|A|*|B|种结合方式)权值之和最大。 标记:A集合:true B集合:false 解法一:dfs+剪枝 解法二:随机化算法(好神奇的思路) 阅读全文