上一页 1 ··· 26 27 28 29 30 31 32 33 34 ··· 44 下一页
摘要: 题目链接用DFS就可以过,判重的时候用map去重的,因为每一条边是最大是10000,用150000进制的3位数就可以表示出现的状态。数据水了。。。我的代码用的是15000进制就A了。。。卡线过的1300+ms 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <cmath> 5 #include <cstdlib> 6 #include <map> 7 using namespace std; 8 int ans,p[16], 阅读全文
posted @ 2012-09-21 14:45 Naix_x 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 题目链接在知道算法的情况下,写了矩阵的算法去找循环节,跑了10来分钟没出结果。。。真心2B啊。。。好好理解这种利用循环节的优化。 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <cmath> 5 #include <cstdlib> 6 using namespace std; 7 #define LL __int64 8 int len1 = 222222224,len2 = 183120; 9 LL p[3][3],mat[3][ 阅读全文
posted @ 2012-09-20 20:15 Naix_x 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 题目链接开始居然错以为是Fib,其实是Trib,对矩阵加深了一下认识,F(n) = F(n-1)+F(n-2)+F(n-3) 初始矩阵变为3阶了。幂模依旧很搓,搜很多个版本,基本上都是运算符重载的,还有调用数组名的,当然也有直接运算的,凑合着用吧。 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <cmath> 5 #include <cstdlib> 6 using namespace std; 7 #define MOD 10000 阅读全文
posted @ 2012-09-20 14:00 Naix_x 阅读(393) 评论(0) 推荐(0) 编辑
摘要: 题目链接不是很了解,线代的行列式和矩阵乘法,忘的差不多了。。。这个矩阵的n-1次方的左上角那个数就是菲薄那切数列的第n项。快速幂矩阵,和快速幂模差不多,把数相乘换成矩阵相乘了。渣代码请无视,改天整理一个模版版本。 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <cmath> 5 using namespace std; 6 #define MOD 10000 7 #define LL __int64 8 int mat[3][3],p[3][3] 阅读全文
posted @ 2012-09-19 20:20 Naix_x 阅读(231) 评论(0) 推荐(0) 编辑
摘要: 暑假里看到大神的一篇文章,在一个大公司里面试,面试冒泡排序链表版,当时想了写一下,不知该如何写起,就放下了,最近数据结构又重新学习链表,试着写了下,对链表的操作熟练运用吧。调的我很纠结啊。。。 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <cstdlib> 5 using namespace std; 6 struct node 7 { 8 int data; 9 struct node *next;10 }List;11 struct nod 阅读全文
posted @ 2012-09-18 19:16 Naix_x 阅读(459) 评论(0) 推荐(0) 编辑
摘要: 题目链接网络赛啊。。。知道了算法还错了N次,托了N天,开始的代码+上一句话就AC了,TLE,我以为二分写搓了呢。。。 1 #include <iostream> 2 #include <cstdio> 3 #include <cmath> 4 #include <cstring> 5 #include <cstdlib> 6 #define ll __int64 7 ll f(int x,int z) 8 { 9 int i;10 ll ans = 1;11 for(i = 1;i <= z;i ++)12 {13 ans *= 阅读全文
posted @ 2012-09-15 21:34 Naix_x 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 题目链接题意:给一个n,问1-n多少个含有49的数字。算是第一个数位DP吧,感觉数位DP只是通过数字之间的关系,写出状态转移方程的,看了别人的状态的转移,我以为我就可以做出来的,谁知,最后计算貌似比状态转移还难理解,至今不太明白为何要先+1,再计算,猜测可能是计算的时候只能计算1 - x-1的合法数字。我所理解的计算的过程:如67995,先算出60000以内的再计算到67000之间的再计算67900再到67990,最后67995.PS:为什么要+1呢,以下是我的猜测,试一下数据可以发现如果这个数里面没有存在‘49’,或者最后两位不是48,那么+1根本没有影响,这两种情况会导致最后的结果也会+1 阅读全文
posted @ 2012-09-14 22:14 Naix_x 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 题目链接以前做过的题,比赛的时候没过,前后都一样的时候要特殊考虑一下,没什么印象了,就记得比赛完,又做的时候用qsort超时了,不会用sort,今天补上吧。代码写的很渣。。。 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <algorithm> 5 using namespace std; 6 #define N 10000000 7 struct nn 8 { 9 int d;10 int a;11 } p[200001];12 int cmp 阅读全文
posted @ 2012-09-13 13:39 Naix_x 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 题目链接刷一下存在感。。。多校的题目,其实以前也知道哈希的的用法,一直不知道如何实现,今天咨询了一下宝哥,然后讲解了一下他的代码,有点像是邻接中的挂链的形式。这个哈希 是运用对一个素数取模的办法,注意一下要先枚举两个数建立哈希,如果3个数,会超内存,效率目测也不好。静态的比动态申请内存稍快,这个题,建哈希不是最主要的矛盾。。。 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <cstdlib> 5 #define M 177777 6 #defin 阅读全文
posted @ 2012-09-11 21:44 Naix_x 阅读(289) 评论(0) 推荐(0) 编辑
摘要: 题目链接今天郁闷啊,网络赛在打酱油,就一个题可以贪心可以搞,暴搜一下,TLE,贪心一下WA,直接没心情再去做了,虽然题目描述也有点问题,但是主要还是自己没有状态啊。。。日子还是要继续,明天继续加油!这个题目上午做的,同样也是很郁闷。。。题目思路:很明显的polya,每隔一个置换的种数是m^gcd(i,n),所以要用到欧拉函数和快速幂模,本来这样准备开始写的,想了想还需要除以n,除法取模啊,找各种资料啊,找到几个关于分数取模的资料,先学习一下。。。然后发现需要扩展欧几里得。。。用扩展欧几里得求逆元,逆元貌似离散里学过(忘了),然后把这个除法就变成乘法了,a*n+b*M = 1扩展欧几里得求出a, 阅读全文
posted @ 2012-09-08 20:51 Naix_x 阅读(628) 评论(0) 推荐(1) 编辑
摘要: 题目链接基本上跟上个题一模一样。居然因为INT64 CE了两次,哭死。。。 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <cstdlib> 5 #include <vector> 6 #include <cmath> 7 #include <map> 8 #define ll long long 9 using namespace std;10 ll euler(ll n)11 {12 ll i,m = (l 阅读全文
posted @ 2012-09-07 21:42 Naix_x 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 题目链接前传:本来之前在高中的一个OJ上看见的,SDOI上的一个题,看着很“数论”,想了想,没想法。。。看了看DISCUSS,说是POJ上的原题,然后看了一下DISCUSS说是欧拉函数,不会。。。然后就放下,最近遇见了很多这样类似的问题,所以先把这个裸题给过了。。。查了一下,有结论。。。∑gcd(i, n) = sum(i*euler(n/i));为啥会这样呢?我自己手算了一下10的情况,规律还是挺明显的,1-n中可以整除i的个数是n/i,这些数与n的最大公约数为i的时候,不就相当于这些都数除以i,然后寻找互质的数,所以i*euler(n/i)就是1-n中公约数是i的总和。欧拉函数用的是模版, 阅读全文
posted @ 2012-09-07 21:33 Naix_x 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 题目链接水DP。 1 #include <stdio.h> 2 #include <string.h> 3 #include <stdlib.h> 4 #define INF -2139062144 5 int p[25][25],dp[26][26]; 6 int max(int a,int b) 7 { 8 return a > b? a:b; 9 }10 int main()11 {12 int i,j,k,n;13 scanf("%d",&n);14 for(i = 1;i <= n;i ++)15 {16 f 阅读全文
posted @ 2012-09-07 15:26 Naix_x 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 题目链接题目还是挺裸的Polya的,但是有一个置换推错了。。。。悲剧啊,一直WA,Java也不熟悉,看着czyuan的文章快速入门。。。180度的时候想错了,其实是c^(n*n+1)/2种,想成和从中间翻一样呢。哎,java写的太搓了。。。开始的时候都没看见翻转。。。 1 import java.io.*; 2 import java.math.*; 3 import java.text.*; 4 import java.util.*; 5 public class Main 6 { 7 public static void main(String[] args) 8 { ... 阅读全文
posted @ 2012-09-07 14:58 Naix_x 阅读(395) 评论(0) 推荐(0) 编辑
摘要: 题目链接数字三角形的加强版,寻找到顶部对100取模最大的,想一想如果枚举的话2^24复杂度肯定会挂,转念一想,肯定都是小于100的数,100个数枚举一下就好。。。开始写了一个不靠谱的程序居然过了9组,也太假了,那个程序只会输出99,后9组数据全是99。。。改了改错,水过了。。。 1 #include <stdio.h> 2 #include <string.h> 3 #include <stdlib.h> 4 int p[25][25],dp[26][26][101]; 5 int main() 6 { 7 int i,j,k,n; 8 scanf(&quo 阅读全文
posted @ 2012-09-06 19:10 Naix_x 阅读(373) 评论(0) 推荐(0) 编辑
上一页 1 ··· 26 27 28 29 30 31 32 33 34 ··· 44 下一页