题目:uva :10123 - No Tipping
题目大意:给出l, m, n 分别表示 长度为l 的杠杆, 重量为 m, 有n个物体放在上方。问每次从上面挑选一个物品移除,是否能使杠杆继续平衡。这个过程中都可以的话,就输出移除顺序(不唯一) 否则就输出 impossible ,一开始,这个杠杆就不平衡的情况也会是有的。因为杠杆也是有重量的。
解题思路;
1、这题先前我就不明白什...
分类:
其他好文 时间:
2014-05-13 23:00:26
阅读次数:
414
1 /** 2 给定一个置换,看能不能存在一个置换A^2 = B 3 思路;
循环节长度为偶数n的置换只能由循环节长度为长度2*n 的置换A*A 而变得。所以只需求出循环节,看循环节长度为偶数的个数是否为偶数个即可。。 4 训练指南 5
**/ 6 #include 7 #include 8 ...
分类:
其他好文 时间:
2014-05-13 22:24:26
阅读次数:
246
用 栈 stack 来处理.
直接根据题目描述写就可以。不要忘记每组数据最后的清空栈堆。
题目大意: 给定52张的扑克牌,现在要求对扑克牌进行整理,对于每一张扑克牌,如果左边的第三张存在那么就去判断这一张是否和第三张满足花色或卡片值相同,如果满足则把这一张移动到左边的第三张,否则去判断左边的第一张是否和这一张满足条件;如果左边的第三张不存在那么只要去判断左边的第一张即可。最后输出剩下的扑克牌的...
分类:
其他好文 时间:
2014-05-13 14:01:26
阅读次数:
265
题目:nest,嵌套
思路:思路想通了其实很简单:将负数压栈,遇到输入正数时,检查栈顶元素,如果栈顶是正数,则出栈,一直检查栈顶元素直到栈顶是负数,判断该数和栈顶负数是否为相反数,并判断出栈的那些正数之和是否小于该输入的正数(这个是满足题目中的相加小于m的条件)。如果满足,则栈顶负数出栈,输入的正数入栈。这样循环到最后,如果一直匹配则最后栈中只剩一个元素。 思路很清晰,但实现起来比较麻烦,...
分类:
移动开发 时间:
2014-05-13 07:23:00
阅读次数:
361
题目:计算题给矩阵相乘次序所需的相乘次数。 我们已知的m*n和n*k矩阵相乘,得到的是m*k矩阵,但需要的相乘次数是m*n*k(开始当成了m*k %>_
思路:每个矩阵用结构体表示,有名字、行、列、需要计算的次数。矩阵相乘的过程用栈来模拟。遇到左括号(,压栈这是自然的。遇到一个矩阵时,检查栈顶,如果栈顶元素是左括号,则压栈,否则就是矩阵,则比较栈顶矩阵和输入矩阵是否匹配,如果匹配则修改栈顶矩...
分类:
其他好文 时间:
2014-05-13 07:13:42
阅读次数:
273
思路:先读入的一列是原始串,后读入的一列是目标串。最少操作次数的方式是,从下到上,只对原始串进行删除而不放到最上面能得到的目标串的以最下元素开头的最长子串,然后将目标串剩余的那些按序放在最上方,即按由下到上的顺序输出即可。
Code:
//#define LOCAL
#include
#include
#include
char name[210][90];
char target[210]...
分类:
其他好文 时间:
2014-05-11 21:42:42
阅读次数:
310
题意:417 - Word Index
题意:每个字符串按题目中那样去映射成一个数字,输入字符串,输出数字
思路:这题还是比较水的,由于一共只有83000多个数字,所以对应一个个数字去映射就可以了,注意字符串进位的情况处理即可
代码:
#include
#include
#include
#include
using namespace std;
char str[10];
ma...
分类:
其他好文 时间:
2014-05-11 20:49:23
阅读次数:
428
题目链接:10497 - Sweet Child Makes Trouble
题意:n个物品,原来物品属于一个地方,现在要把物品重新放回去,问能放几种使得每个物品都与原来位置不同
思路:递推,一开始随便搞了个二维状态,dp[i][j]表示i个物品,有j个位置不同,那么dp[n][n]就是答案,递推式为:
dp[i][j] = 1 (j == 0)
dp[i][j] = (j - 1) * ...
分类:
其他好文 时间:
2014-05-11 20:25:48
阅读次数:
433
思路:简单的匹配操作,利用栈。
Code:
#include
#include
char stack[135];
int main()
{
int n;
scanf("%d",&n);
getchar();
while(n-->0)
{
memset(stack,0,sizeof(stack));
char c;
int top=0;
int flag=1;...
分类:
其他好文 时间:
2014-05-11 20:19:34
阅读次数:
376
题目链接:580 - Critical Mass
题意:一个栈,里面可以放L和U,有三个连续的U就是不安全的,问共有几种不安全的情况
思路:dp,dp[i][j][k],表示放到第i个,最后两个状态为j,k表示有没有出现不安全。然后去记忆化搜索一下就可以了
然后还有一种做法是,先考虑安全的情况,在用总情况(1
不过这题都没给数据范围,不过数据其实并不大,不然计算的时候种数一下就会超过范围了...
分类:
其他好文 时间:
2014-05-11 20:10:18
阅读次数:
372