摘要:
一直没想到怎么去重 看了眼别人的代码...so easy啊同余啊 唉..脑子被僵尸吃掉了难得1000出个简单的 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 #define LL long long10 int vis[1010];11 class SparseFactorialDiv212 {13 public:14 long long getCount(long long lo, long long hi, long... 阅读全文
摘要:
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... 阅读全文
摘要:
4422小于等于3 的时候就是1024 4的时候 讨论 5的时候讨论 注意重量为0的情况 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 int a[10]; 9 int n;10 int main()11 {12 int i,j,g;13 while(scanf("%d",&n)!=EOF)14 {15 int sum=0;16 for(i = 1; i <= n ; i++)17 {1... 阅读全文
摘要:
4430去年长春最简单一题 二分啊 错了好多遍 有个大坑 是个圆心处的1 可选可不选 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define LL __int64 9 LL s;10 int main()11 {12 int i,j;13 while(scanf("%I64d",&s)!=EOF)14 {15 LL maxz = s-1,m1 = 1,m2 = s-1;16 for(i = 2; ... 阅读全文
摘要:
1057简单的数位DP 刚开始全以2进制来算的 后来发现要找最接近x,y值的那个基于b进制的0,1组合 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define LL __int64 9 #define INF 1e11 10 LL dp[35][25],pp[12][22]; 11 int g1,g2,p[1INF) 22 break; 23 } 24 } 25 dp[0][0]... 阅读全文
摘要:
4427dp[i][j][k] i为K位的最小公倍数 j为k位的和 k以滚动数组的形式这题最棒的是 有一个强有力的剪枝 组成公倍数m的肯定都是M的质因子 这样1000里面最多就30多个 复杂度可过了 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define mod 1000000007 9 int dp[1010][1010][2];10 int q[110][1010],f[1010],lc[1010][1010];11 int p[1010];12 . 阅读全文
摘要:
4760数组模拟就可以了 读的时候可以整数读入 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 using namespace std; 10 #define LL __int64 11 int len,maxz; 12 LL ip[1050][16][2],pp[40]; 13 int vis[1050],w[1024],di[50],g; 14 char s[50],s1[50],s2[50]; 15 void init() 16 { 17... 阅读全文
摘要:
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=' 阅读全文
摘要:
贡献了一列WA。。数学很神奇啊这个题的关键是怎么才能算尾0的个数 只能相乘 可以想一下所有一位数相乘 除0之外,只有2和5相乘才能得到0 当然那些本身带0的多位数 里面肯定含有多少尾0 就含有多少对2和5这样就知道了 就是求2和5 的对数最少的 一条路 DP就不用说了 递推注意有0的时候的计算 特殊处理一下 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define N 1010 9 #define INF 1e10 10 #define... 阅读全文
摘要:
只有小写字母 那>=2600的直接找单字母串长度大于等于100的就可以了<2600 的dp找最长回文串 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define N 50010 9 char s[N];10 char pa[2610];11 int dp[2610][2610][2],g,n,o[30];12 void dfs(int ss,int i,int j,int k)13 {14 if(ss==0)15 return ;16 ... 阅读全文