随笔分类 -  OJ--URAL

摘要:1389算个简单的树形DP吧 不知道是不是数据太水 竟然一A了就是对于当前节点有没有被选中就行选最优 有没有被选中的意思是有没有与它相连的边被选中 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 #define N 10001010 vectord[N];11 int dp[N][3],g;12 struct node13 {14 int u,v;15 }p[N];16 int dfs(int u,int v,int f)17 {... 阅读全文
posted @ 2014-02-13 16:59 _雨 阅读(328) 评论(0) 推荐(0) 编辑
摘要:1326用队列优化的 不知道为什么一直WA 传统直白的 状压 写了超时 O((1 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 #define N 110000010 #define INF 0xfffffff11 int dp[2][N];12 int p[25],o[110],sum[110];13 vectora[110];14 bool f[2][N],ff[25];15 int main()16 {17 int i,j,n,m,v,s=0;1... 阅读全文
posted @ 2014-02-11 17:21 _雨 阅读(485) 评论(0) 推荐(0) 编辑
摘要:1238这算模拟加记忆化吗 找bug找了2个多小时。。记忆化部分好想 就是字符串处理部分挫了 一个个复制模拟 各种修改查找 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define INF 0xfffffff 9 int dp[110][110],o[110][110]; 10 char s[110][110][110],ss[110]; 11 int len(int x) 12 { 13 int q=0; 14 whi... 阅读全文
posted @ 2014-02-11 13:32 _雨 阅读(404) 评论(0) 推荐(0) 编辑
摘要:1410dp水题 题意读了好一会 是不能连续读两个及以上单词 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 using namespace std;10 #define N 1001011 int dp[N],len[N];12 char s[N][30],ss[N*100];13 int main()14 {15 int i,g=0;16 while(scanf("%c",&ss[g])!=EOF)17 {18 g++... 阅读全文
posted @ 2014-02-10 20:03 _雨 阅读(177) 评论(0) 推荐(0) 编辑
摘要:1495牵扯一点数位 保存数的时候我是按2进制保存的 把1当作0算 把2当作1算 滚动数组dp[i][j][(g*10+j)%n] = min(dp[i][j][(g*10+j)%n],dp[i-1][1][g]*2+j-1,dp[i-1][2][g]*2+j-1) j取1,2 *2+j-1是因为我按二进制算的时限给出的2S就是给我这种毫无优化又笨又戳的代码的 跑了1.39s0xfffffff的范围 是2Y多 还是少用好了 太容易超了 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using name.. 阅读全文
posted @ 2014-02-10 17:46 _雨 阅读(345) 评论(0) 推荐(0) 编辑
摘要:1513这题好久之前就看过了,悲催的是当时看题解都没看懂,今天又看了看so easy...n个B里不能出现超过连续k个L的情况 一维递推就可以 两种情况 1、dp[i] += dp[i-1] 在i-1的串后面直接加一个B 2、dp[i]+=dp[i-2]+dp[i-3]+...+dp[i-k-1] 这部分的意思是在串后面补连续1个L 2个L 3个L。。K个L的情况 那补一个L的情况要取决于dp[i-1]里面最后一位为B的个数 正好为dp[i-2],依次可做。 1 import java.text.*; 2 import java.io.*; 3 import java.util.*; 4 im 阅读全文
posted @ 2014-02-10 16:15 _雨 阅读(195) 评论(0) 推荐(0) 编辑
摘要:1900二维dp挺好推 dp[i][j] = max(dp[i][j],dp[g][j-1]+o[i][i+1]-o[g][i+1])(i>g>=j-1) dp[i][j]表示第i个站台开放第j次设备 预处理出来通过i-j的人数 包括 i-1~j+1等等的 用o[i][j]表示的没睡好 %>_ 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 #define LL long long10 int dp[510][510],q[510];11 in 阅读全文
posted @ 2014-02-10 16:09 _雨 阅读(309) 评论(0) 推荐(0) 编辑
摘要:http://acm.timus.ru/problem.aspx?space=1&num=1221算是枚举的 题目意思是必须划出这样的 11011 10001 00000 10001 11011注意中间必须是完整的0,不多不少,旁边的1也是如此 不多不少 才可以题目很简单 预处理出1的个数 以及以当前0为最低顶角的最大正方形的边长 判断一下1的个数是否满足就可 1 #include 2 #include 3 #include 4 #include 5 #in... 阅读全文
posted @ 2014-02-02 23:14 _雨 阅读(365) 评论(0) 推荐(0) 编辑
摘要:1430即使是枚举 也是有一定技术含量的 对于ax+by = n; 枚举max(a,b)中的系数 这样可以确定另一个 但问题是如何确定上限 假设max(a,b) = a,很显然是不会超n/a的 但这样还是会超时的可以设想一下假如x比b大 那么它可以拆分为x'+b吧 那把b合并y那里就好了 很明显也是不会超过b的 这样复杂度就不会超过sqrt(n) 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define LL long long 9 int mai 阅读全文
posted @ 2013-11-11 14:29 _雨 阅读(262) 评论(0) 推荐(0) 编辑
摘要:1343想了好一会 以为会有什么定理呢 没想到 就试着搜了 看来素数还是很多的 跑的飞快注意会有前导0的情况 还有0,1不是素数。。。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 using namespace std;10 #define LL long long11 int flag;12 char a[20];13 LL p[20];14 int judge(LL x)15 {16 if(x12)28 {29 if(ju... 阅读全文
posted @ 2013-11-10 21:05 _雨 阅读(329) 评论(0) 推荐(0) 编辑
摘要:1091容斥原理 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 int p[110],g,f[55],q[55],o,vis[55],pa[55],n,kk; 9 #define LL long long10 void init()11 {12 int i,j;13 for(i = 2; i 1&&s%x==0)31 {32 s/=x;33 x--;34 }35 ... 阅读全文
posted @ 2013-11-10 14:06 _雨 阅读(188) 评论(0) 推荐(0) 编辑
摘要:1141越来越喜欢数论了 很有意思先看个RSA的介绍RSA算法是一种非对称密码算法,所谓非对称,就是指该算法需要一对密钥,使用其中一个加密,则需要用另一个才能解密。RSA的算法涉及三个参数,n、e1、e2。其中,n是两个大质数p、q的积,n的二进制表示时所占用的位数,就是所谓的密钥长度。e1和e2是一对相关的值,e1可以任意取,但要求e1与(p-1)*(q-1)互质;再选择e2,要求(e2*e1)mod((p-1)*(q-1))=1。(n,e1),(n,e2)就是密钥对。其中(n,e1)为公钥,(n,e2)为私钥。[1]RSA加解密的算法完全相同,设A为明文,B为密文,则:A=B^e2 mod 阅读全文
posted @ 2013-11-08 21:27 _雨 阅读(756) 评论(0) 推荐(0) 编辑
摘要:1748反素数素数的个数随大小的递增而递减 可以相同注意各种超啊 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define INF 1e19 9 #define LL unsigned long long10 #define N 3200011 int p[N],f[N],g,po[N];12 LL maxz,tt,pp[N][100],n;13 void init()14 {15 int i,j;16 17 for(i = 2; i I... 阅读全文
posted @ 2013-11-07 09:58 _雨 阅读(229) 评论(0) 推荐(0) 编辑
摘要:1355其实就是求质因子的个数 这样肯定是最多的 注意一下 除到最后不是1的情况 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define N 32000 9 int p[N],g,f[N];10 void init()11 {12 int i,j;13 f[0] = 1;14 f[1] = 1;15 for(i = 2; i >t;28 while(t--)29 {30 cin>>n>>m... 阅读全文
posted @ 2013-11-06 15:07 _雨 阅读(205) 评论(0) 推荐(0) 编辑
摘要:1204大体推推 会出来这个式子 x(x-1) = k*n;n = p*q ;x(x-1)%(p*q)==0;因为p,q都为素数 那也就是说x和x-1中必定包含这两个数 而且一个里面只能有一个 不然会大于等于N当上面的k=0时 x=0||x=1 这是固定的然后 {x-pi=0; (x-1)-qi = 1}化这一组 就会变成pi-qi=1 这就变成了扩展欧几里得 必定存在一组解 解出来带入一下 注意一下负数就可以了 下一组同样这样计算{x-pi=1; (x-1)-qi = 0} 1 #include 2 #include 3 #include 4 #include 5 #include 6 #. 阅读全文
posted @ 2013-11-05 20:18 _雨 阅读(335) 评论(0) 推荐(0) 编辑
摘要:1049求约数的个数 质因子数的个数+1相乘 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define N 10000 9 int f[N+10],a[12],p[N+10],g,o[N+10];10 void init()11 {12 int i,j;13 for(i = 2; i >a[i];29 for(i = 1; i <= 10 ; i++)30 {31 int x = a[i];32 ... 阅读全文
posted @ 2013-11-05 18:00 _雨 阅读(174) 评论(0) 推荐(0) 编辑
摘要:1133刚开始还用记忆化推了下公式 后来发现数是非常大的二分 然后就是精度错误 中间值会很大乱七八糟的改 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 #define LL long long10 #define INF 214748364711 long double f[3010];12 int main()13 {14 LL i,j,s1,s2,t,n,g;15 cin>>i>>s1>>j> 阅读全文
posted @ 2013-11-05 16:01 _雨 阅读(325) 评论(0) 推荐(0) 编辑
摘要:1291不知道为嘛被分在DP里了 瞎写 注意没被别的轮带动的情况 初始为0 分母为1 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 #define N 101010 vectorge[N];11 int co[N],d[N],vis[N];12 struct node13 {14 int f,nu,de;15 }p[N];16 int gcd(int a,int b)17 {18 return b==0?a:gcd(b... 阅读全文
posted @ 2013-11-01 11:25 _雨 阅读(245) 评论(0) 推荐(0) 编辑
摘要:1427题意不太好理解 其它没什么 细心啊 细心 一个0写成了1 WA半天以每个字符是以第一种方式还是第二种方式来D 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define N 100010 9 char s[N];10 int dp[N][2],o[N][2];11 int judge(char x)12 {13 if(x==' ')14 return 1;15 if(x>='a'&&x=' 阅读全文
posted @ 2013-10-22 12:37 _雨 阅读(276) 评论(0) 推荐(0) 编辑
摘要:1287水DP 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define N 1402 9 int dp[N][N][4];10 char s[N][N];11 int main()12 {13 int i,j,n;14 scanf("%d",&n);15 for(i = 0 ; i >s[i];17 dp[0][0][0] = 1;18 dp[0][n-1][3] = 1;19 for(i = 0 ; i... 阅读全文
posted @ 2013-10-20 20:35 _雨 阅读(220) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示