
ahu
acblacktea
永不放弃
展开
-
ahu355
#include<stdio.h>#include<string.h>#include<stdlib.h>int y,m,d,i,j,k,y1,m1,d1,t,sum1,r,sum2,a,b;int month[2][13]={0,31,28,31,30,31,30,31,31,30,31,30,31,0,31,29,31,30,31,30,31,31,30,31,30,31};int s原创 2015-07-26 17:42:17 · 499 阅读 · 0 评论 -
aoj-737-欧拉函数模板
性质: 欧拉函数用希腊字母φ表示,φ(N)表示N的欧拉函数.对φ(N)的值,我们可以通俗地理解为小于N且与N互质的数的个数.欧拉函数的一些性质:1.欧拉函数是积性函数,但不是完全积性函数,即φ(mn)=φ(n)*φ(m)只在(n,m)=1时成立.2.对于一个正整数N的素数幂分解N=P1^q1*P2^q2*…*Pn^qn.φ(N)=N*(1-1/P1)(1-1/P2)…*(1-1/Pn).3.除了N原创 2016-05-13 15:09:51 · 457 阅读 · 0 评论 -
ahu-730-幸运抽奖
最多情况不超过long long,先DP打表再取模。 dp[52][1300][52] 一维代表此时选择的数的个数,二维代表此时的总和,三维代表此时选的最大数。 dp[i][j][k] = dp[i-1][j-1][1]+dp[i-1][j-2][2]+…dp[i-1][j-k1+1][k1]; 有很多情况不用递推可以剪掉。 思路太繁琐,有没有人用二维DP或组合数学AC的啊!!!#inclu原创 2016-04-09 15:55:53 · 371 阅读 · 0 评论 -
ahu-518-塔
水DP,排个序就不超时了#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;int dp[2][510000],a[60],n;bool sym[2][510000];int main(){ while(scanf("%d",&n)!=EOF) {原创 2016-04-08 15:11:39 · 379 阅读 · 0 评论 -
ahu-563-3次幂分解
(1)把n化成三进制; (2)x位为0不考虑; (3)x位为2考虑成3^(x+1)-3^x;为1考虑成3^x; ( 4 )还有一些细节消除多余项自己考虑。。。#include<cstdio>#include<queue>#include<stack>using namespace std;int n,t;long long thi[30]; int main(){ sca原创 2016-04-07 22:40:29 · 433 阅读 · 0 评论 -
ahu-557容斥原理
用容斥求1-n中能被2-i中素数整除的个数ans其中 i*i<=n;然后结果为n-ans-1;#include<cstdio>int pri[10005],pri2[10005],i1,n,ans;void toGetPrim(){ for(int i=2;i<=10001;i++) if(!pri[i]){ for(int j=2;j*i<=10001;j++原创 2016-03-12 14:16:15 · 433 阅读 · 0 评论 -
aoj-733-闭合折线
1.先按x从小到大排序,再按y从小到大排序,x值相同的各点数肯定为偶数且从下到上两两匹配形成一组线段 2.判断在点内点外的方法应该会几何的都知道。。。毕竟我这种渣货都能熟练敲出来。#include<cstdio>#include<cmath>#include<cstdlib>struct point{ int x,y;}p[20000],p1;int cmp(const void原创 2016-03-20 15:19:29 · 432 阅读 · 0 评论 -
ahu - 572
组合数学水题~~~#include <cstdio>#include <cstring>#include <cmath>#include <cstdlib>#include <queue>#include <stack>#include <set>#include <map>#include <time.h>//-----------------------分割线呵呵--------原创 2015-09-20 09:48:27 · 297 阅读 · 0 评论 -
ahu-497-最长起伏子序列
最长递增序列的变形dp,我又开始水了。。。。#include<cstdio>#include<cmath>#include<cstring>#include<cstdlib>#include<stack>#include<set>#include<queue>#include<map>#include<iostream>#include<algorithm>using names原创 2015-09-06 22:53:47 · 399 阅读 · 0 评论 -
ahu-595-撒哈拉大冒险
坑点:输入不能一个个字符输入,跟hd不一样数据坑 思路 循环 x=(x%n+n)%n+搜索队列 交了我的和硕神的代码,200ms和80ms,只是因为我的是用queue库函数,硕神手撸stack,所以说亲手撸的要节省很多时间。 第一道无限循环的题学会很多。#include <cstdio>#include <cmath>#include <cstring>#include <cstdli原创 2015-09-24 22:40:20 · 493 阅读 · 0 评论 -
ahu-746-梯田二分+bfs
1数据水2二分查找加速#include <cstdio>#include <cstring>#include <cmath>#include <cstdlib>#include <queue>#include <iostream>#include <algorithm>using namespace std;int i,j,k,t,map[110][110],color[110][1原创 2015-09-25 17:53:06 · 457 阅读 · 0 评论 -
ahu727美妙音乐
dp递推出第n个音符以1-m种音符结尾的最大值,然后输出这m个数的最大值,239ms,看前辈大牛14ms过的,不明觉厉。。#include<stdio.h>#include<string.h>#include<cmath>#include<cstdlib>#include<set>#include<queue>using namespace std;int n,m,i,j,k,t,x;原创 2015-09-05 10:06:32 · 822 阅读 · 1 评论 -
ahu 350 分解因式
数论知识略微加一点贪心思想,主要是学好数学啊。。。 把一个数(n<100000000)分解成质数相乘形式#include<stdio.h>#include<string.h>#include<math.h>#include<stdlib.h>int main(){ int i,j,k,n,s,n1,i1; while(scanf("%d",&n)!=EOF) {原创 2015-07-29 14:39:09 · 610 阅读 · 0 评论 -
AHU524 桂园食堂
动归第一题,背包的模板。。。主要是浮点数精度的问题,在浮点数的表示法中,两个数之间的差值是用距离来表示的,因此相差极小的两个数,运算之后可能用同一个数来表示了。那么如何判断两个数相等呢?答案是:差值小于一个足够小的数,比如0.00000001这种。(硕神博客学来的。。。)然后要加0.01.#include<stdio.h>double a[120][10020];int main(){原创 2015-07-29 18:03:09 · 801 阅读 · 0 评论 -
ahu 395 快速矩阵幂初学 + 矩阵快速幂模板
#include <cstdio>#include <string>#include <cmath>#include <iostream>using namespace std;const long long M = 10003;const long long N = 3;long long t,b,c=0,f1,f2;struct Node //矩阵{ long lon原创 2015-09-20 11:21:23 · 360 阅读 · 0 评论