随笔分类 - 写给自己
重要而又基本的思想汇总!
摘要:原题链接:http://acm.uestc.edu.cn/problem.php?pid=1056题目:大小写切换分析:以前这种问题我都是用dp写的,最近学到了一种更简洁的方法,特此记录下来! 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 #define maxn 200000510 #define LL long long11 int T,n;12 char s[220];13 int main()14 {15 scanf("
阅读全文
摘要:题目:Park Visit原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=4607分析:求树的直径。所谓树的直径,指的是一棵树里任意两点之间的最远距离。方法为选定一点,然后从该点bfs,则最后一个出栈的点必为直径的一端,然后以该点为起点bfs,求出直径即可。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 #define maxn 10000510 int T,n,m;11 vectorg[ma
阅读全文
摘要:数的长度原题链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=69分析:先看看求n!的朴素算法,用大整数乘法来实现。 1 #include 2 #include 3 #include 4 using namespace std; 5 int wei[1000000]; 6 int main() 7 { 8 int t,n; 9 scanf("%d",&t);10 while(t--)11 {12 memset(wei,0,sizeof(wei));13 int cnt=0;14...
阅读全文
摘要:原题链接:http://acm.uestc.edu.cn/problem.php?pid=1690&cid=215分析:dp[i][j]表示前i座山,最后一座的高度为j时的最小费用;状态转移方程:dp[i][j]=min(dp[i-1][k])-A*k+A*j+(h[i]-j)^2 max(j-K,0)<=k<=j;k>j时方程类似;用单调队列优化DP。最少花费 1 #include<cstdio> 2 #define inf 0xfffffff 3 #define min(a,b) a<b?a:b 4 using namespace std; 5
阅读全文

浙公网安备 33010602011771号