06 2012 档案
摘要:很有技巧的一道数学题。本题思路:假设要求的数字为A,去除的为第k位,那么按照这个规则,将A划分为三段:高位c,k位b,低位a,则x=a*10^(k+1)+b*10^k+c去除后为B=a*10^k+c,那么n=A+B=(11a+b)*10^k+2c;但是由于2c有可能带来进位,可能会使b进1,但是不会对a出现影响,那么a就可以直接求出了。再通过a求出b,然后求出c;求c时分进位和没有进位两种情况,记录下来,然后排序一下输出。View Code #include<stdio.h>#include<algorithm>using namespace std;int main(
阅读全文
摘要:2567-Tempter of the Bone(剪枝)2568-Asteroids1533-Oil Deposits(DFS)1039-Rescue2569-Nightmare(标记)2570-胜利大逃亡(3维DFS)2031-Red and Black(DFS)2331-Knight Moves双广+优先1282-Substrings2572-Prime Ring Problem回溯2056-Solitaire双广2528-Anagrams by Stack2573-A strange lift无题
阅读全文
摘要:排序+二分查找:http://acm.pku.edu.cn/JudgeOnline/problem?id=1318最小公倍数:http://acm.zju.edu.cn/show_problem.php?pid=1797数列的周期性:http://acm.zju.edu.cn/show_problem.php?pid=2105数三角形:http://acm.zju.edu.cn/show_problem.php?pid=1629高精度加法:http://acm.zju.edu.cn/show_problem.php?pid=1292非10进制高精度加法:http://acm.zju.edu.c
阅读全文
摘要:题目来源:http://acmpj.zstu.edu.cn/JudgeOnline/showproblem?problem_id=2552动态规划基本步骤(本人觉得):1.确定数组的维数,一维,二维等等;2.弄清数组下标的含义3.找出状态转移方程式;4实现自己的想法;本题思路:二维数组dp[i][j],i表示前i个马棚放马完毕,j表示队列前j匹马已经进入马棚,dp[i][j]记录前j匹马放在前i个马棚里的最小不愉快系数,用f(a,b)表示只把第a匹马到第b匹马放在一个马棚里的不愉快系数;思考得出 状态转移方程:dp[i][j]=min(dp[i-1][t]+f(t,j));注意范围:(i-1&
阅读全文
摘要:DP+DFS,记忆化搜索,典型的用空间换时间。View Code #include<stdio.h>#include<string.h>int dp[101][101],h[101][101];int dir[4][2]={1,0,-1,0,0,1,0,-1};int m,n;int dfs(int x,int y){ if(dp[x][y])return dp[x][y]; int i,temp; for(i=0;i<4;i++) { int fx=x+dir[i][0]; int fy=y+dir[i][1]; if(fx>...
阅读全文
摘要:经典三维BFS,此题用DFS会超时,用BFS不剪枝也会超时,其实跟二维的BFS没什么区别View Code #include<stdio.h>#define maxn 31struct node{ int x,y,z; int cnt;};const int dir[6][3]={{0,-1,0},{-1,0,0},{0,1,0},{1,0,0},{0,0,-1},{0,0,1}};int map[maxn][maxn][maxn];int a,b,c,t;int bfs(){ node q[maxn*maxn*maxn]; node n,p; int i,rea...
阅读全文

浙公网安备 33010602011771号