HDU 5006 Resistance
思路:这题由于数据是随机的。。电阻不是1就是0,就可以先缩点,把电阻为0的那些边缩掉,只考虑有电阻的边,这样的话缩下来点数就不多了,就可以利用高斯消元+基尔霍夫定律去搞了
代码:
#include
#include
#include
#include
#include
using namespace std;
const int...
分类:
其他好文 时间:
2014-09-15 22:55:54
阅读次数:
294
HDU 5008 Boring String Problem
题目链接
思路:构造后缀数组,利用height的数组能预处理出每个字典序开始的前缀和有多少个(其实就是为了去除重复串),然后每次二分查找相应位置,然后在往前往后找一下sa[i]最小的
代码:
#include
#include
#include
using namespace std;
typedef l...
分类:
其他好文 时间:
2014-09-15 21:21:09
阅读次数:
271
03 hdu 5009 Paint Pearls
题目意思:
有n颗珍珠,要求每颗珍珠达到预定颜色,每次操作可以选一连续区间的珍珠,让它们达到预定颜色,花费为该区间不同颜色种数的平方。求完成任务的最少花费。
n
解题思路:
o(n^2)肯定会超时.考虑花费最多为n,且最大的种数为sqrt(n),可以一种一种的往前扫(不是一个一个的),注意如果后面已经选了某种,则前面的该种不用扫,直接连...
分类:
其他好文 时间:
2014-09-15 21:20:39
阅读次数:
335
思路:尼玛,这题搞了一天了,比赛的时候用了n^2的方法绝对T了,然后今天看别人代码看了一天才知道。后面感觉也挺容易的,就是没想到,之前做过SPOJ 694 705求过不同子串了,知道怎么求不同子串个数了,但是比赛的时候这个技巧竟然抛在脑后了,然后就不会了。
但是今天自己用了自己的两个后缀数组的模板(倍增和DC3)的都WA了,搞得自己真想跳楼去了!!
到现在都不知道到底是哪里错了,处理的方法和标...
分类:
其他好文 时间:
2014-09-15 21:19:59
阅读次数:
227
说起这题简直醉了。。当时愣是没想到该怎么做,搞了好久,虽然有想过构造矩阵,但是没仔细想下去。
此题构造两个矩阵,假设a[]数组为题目给出的数据,最多有10个元素,我们可以构造一个矩阵A:
a={a[1],a[2],a[3],...a[n],23,3} 大小为1*(n+2)
要得到题目需要的计算结果,那么在构造一个矩阵B,大小为(n+2)*(n+2):(假设n=3)
b= 1 ...
分类:
其他好文 时间:
2014-09-15 19:32:08
阅读次数:
179
西安网络赛C题。先对大数据离散化,dp优化
#include //G++
#include
#include
#include
#include
#include
#include
#include
using namespace std;
const int maxn=51234;
struct kind
{
int id;
int val;
};
int vis...
分类:
其他好文 时间:
2014-09-15 19:30:59
阅读次数:
168
题意略。思路:简单的四方向BFS,用map记录去重。总结:WA了一发因为骰子面的变换写错了一个地方。要细心。AC代码(Exe.Time: 31ms): 1 #include 2 #include 3 #include 4 #include 5 #include 6 #inclu...
分类:
其他好文 时间:
2014-09-15 19:26:39
阅读次数:
194
HDU 5017 Ellipsoid
题目链接
思路:模拟退火大法好!
代码:
#include
#include
#include
#include
using namespace std;
const int D[8][2] = {{0, 1}, {0, -1}, {1, 0}, {-1, 0}, {1, 1}, {-1, -1}, {1, -1}, {-1,...
分类:
其他好文 时间:
2014-09-15 17:52:39
阅读次数:
211
n堆珠子,每次选一堆至少取一个,然后可以选择是否把这堆剩下的分为任意的a,b两部分,谁先取完谁赢,问先手的是否能获胜。
#include
#include
#include
#include
#include
#include
using namespace std;
int n;
int main()
{
int x;
int ans;
while(scanf("%d",&n...
分类:
其他好文 时间:
2014-09-15 17:52:09
阅读次数:
171
每个数想要得到最大的异或值,就肯定是在二进制上是互补的,所以暴力找出互补的数。
#include
#include
#include
#include
#include
#include
#define LL long long
using namespace std;
int a[110000];
int n;
int link[110000];
int bit(int n)
{
...
分类:
其他好文 时间:
2014-09-15 17:45:49
阅读次数:
197