找出规律,最后一位对数据的影响只在和最前一位的大小关系上,然后去掉最后一位其他的都是可行的,最后加上1-9。
CodeForces 205B Little Elephant and Sorting (贪心)
每个前面大的后面小的都需要使他们保持平衡
1 | #include <bits/stdc++.h> |
CodeForces 205A Little Elephant and Rozdil
读懂题就行,不用排序找一下最小的是不是多个
1 | #include <iostream> |
POJ 1655 Balancing Act (树的重心)
找出树的重心
s数组表示包括此点产生的所有子树的点的和
f数组表示以此点为重心切产生的最大子树的节点数
1 | /* From: Lich_Amnesia |
POJ 1463 Strategic game (树形DP)
树形DP
用dp[i][0]来表示该点没有放兵,以这个点为根的子树所需的最少兵数。
用dp[i][1]来表示该点有放兵,以这个点为根的子树所需的最少兵数。
那么可以得到状态方程
dp[fa][0]+=dp[son][1];//如果该父亲不放,那么儿子必须放
dp[fa][1]+=min(dp[son][0],dp[son][1]);//如果该父亲放,儿子在放和不放之间选择最小的
访问的时候,因为要先知道儿子的信息,用递归的解法
1 | /* From: Lich_Amnesia |
HDU 2999 Stone Game, Why are you always there? (SG)
http://acm.hust.edu.cn/vjudge/contest/view.action?cid=31424#overview
自己搜集的一些SG和博弈类的题目
题目:给出一串石头,和一个集合,每次取出若干个连续的石头(数量必须为集合中的),最后取完的获胜,问有没有必胜策略。
http://acm.hdu.edu.cn/showproblem.php?pid=2999
好像不是很理解SG函数的含义, 可还是乱七八糟的搞出了SG,然后水过去。
对于一个连续的串,比如说长度为5,可行只有2,那么取了之后可能分为两段
如后继可能为:(1,3),{(1),(4,5)},{(1,2),(5)},{3,5}这四种情况。两个区间异或之后,取mex操作
虽不明但觉厉,然后就AC了。
局面是确定的,没有存在不确定的情况
1 | /* |
HDU 2999 Stone Game, Why are you always there? (SG)
http://acm.hust.edu.cn/vjudge/contest/view.action?cid=31424#overview
自己搜集的一些SG和博弈类的题目
题目:给出一串石头,和一个集合,每次取出若干个连续的石头(数量必须为集合中的),最后取完的获胜,问有没有必胜策略。
http://acm.hdu.edu.cn/showproblem.php?pid=2999
好像不是很理解SG函数的含义, 可还是乱七八糟的搞出了SG,然后水过去。
对于一个连续的串,比如说长度为5,可行只有2,那么取了之后可能分为两段
如后继可能为:(1,3),{(1),(4,5)},{(1,2),(5)},{3,5}这四种情况。两个区间异或之后,取mex操作
虽不明但觉厉,然后就AC了。
局面是确定的,没有存在不确定的情况
1 | /* |
POJ 1001 Exponentiation (Java大数)
1 | import java.math.BigInteger; |
POJ 1205 Water Treatment Plants (DP+高精度)
大意是,在一条线上有`N个城市,它们由一个污水处理系统连接着,每个城市有三个选择:
1.把自己的污水排到河里V
2.把自己的污水送到右边>
3.把自己的污水送到左边<
至少要有一个城市排水。要求给N个城市,方案种数。
最左边只有两种选择:V,>
令 dp[i][0]:V
dp[i][1]:>
dp[i][2]:<
则:dp[i][0]=dp[i-1][0]+dp[i-1][1]+dp[i-1][2]
dp[i][1]=dp[i-1][0]+dp[i-1][1]+dp[i-1][2]
dp[i][2]=dp[i-1][0]+dp[i-1][2]//刚开始总是很但是会不会有没有城市排水的问题,但是这个方程保证了不会出现><的情况
但是这三个方程不能保证不会出现一排全是>>>>>的情况,所以在算最后一个的时候,只能算dp[n][0]+dp[n][2]
注意到dp[i][0] dp[i][1]总是相等,所以可以少列一个状态转移方程
dp[i][0]=2*dp[i-1][0]+dp[i-1][2]
dp[i][2]=dp[i-1][0]+dp[i-1][2]
即dp[i]=3*dp[i-1]-dp[i-2]
到此为止,整个状态转移方程就列出来了。
由于dp的值可能会很大,所以就要用到java里面的BigInteger
1 | import java.io.*; |
Fedora 19 下 Mysql 报错 ERROR 2002 解决方法
使用
1 | mysql -u root -p |
启动Mysql报错
1 | ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) |
然后
1 | su - |
还是出现
1 | ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) |
发现是service 这里可能会有问题
用绝对路径启动就行了
1 | /etc/init.d/mysqld start |
启动Mysql
完整命令
1 | su - |