摘要: LINK:HDU 2571题意:就是给了一个nxm的表格,从左上角到右下角所能得到的最大值。PS:每到一格就加上格子中的数字,且只能向下或向右走,向下只能走一格,向右能走一格或走到所在点的k倍【即有a[i][j]走到a[i][j*k],k=1,2,3,.....】。采用DP做,具体方法详见下面的代码:#include #include #include using namespace std;int a[22][1010],n,m,c;int main(){ scanf("%d",&c); while(c--) { scanf("%d%d",&a 阅读全文
posted @ 2013-08-22 16:37 Teilwall 阅读(206) 评论(0) 推荐(0) 编辑
摘要: LINK:HDU 1018 题意:求n!的位数~由于n!最后得到的数是十进制,故对于一个十进制数,求其位数可以对该数取其10的对数,最后再加1~易知:n!=n*(n-1)*(n-2)*......*3*2*1∴lg(n!)=lg(n)+lg(n-1)+lg(n-2)+......+lg(3)+lg(2)+lg(1);代码: 1 #include 2 #include 3 #include 4 using namespace std; 5 6 int main() 7 { 8 int t; 9 scanf("%d",&t);10 while(t--)11 ... 阅读全文
posted @ 2013-08-22 16:27 Teilwall 阅读(149) 评论(0) 推荐(0) 编辑
摘要: LINK:HDU 2554这是昨天晚上小练里面比较有趣的一道题~我在做的时候思路错了,以为数字的排列会有规律,结果后面发现就算有也很难找......╮(╯▽╰)╭看了网上的题解,有一种恍然大悟的感觉,就直接把它当做方程来解,只要符合题意的x,y存在即可~题解: 假设双胞胎数为n,那么就共有2n个人,把双胞胎分开,分别记为A类和B类。在进行排列时,ak代表【年龄为k,同时所属分类为A的人在排列中的位置】,同理,bk则表示【年龄为k,所属分类为B的人在排列中的位置】~(注:在此假设ak 2 #include 3 int main() 4 { 5 int n; 6 while( ... 阅读全文
posted @ 2013-08-22 16:12 Teilwall 阅读(233) 评论(0) 推荐(0) 编辑