惨败,不能再嘲笑别人了,否则自己也会像别人那样倒霉

HDU 5615:http://acm.hdu.edu.cn/showproblem.php?pid=5615

求ax^2+bx+c能否拆成(px+k)(qx+m)的形式

不错的方法,原来的被hack了

 #include <cstdio>
#include <iostream>
#include <cmath>
#include <cstring>
#include <queue>
#include <vector>
#include <algorithm> #define rep(i,a,n) for(int i = a;i < n;i++)
#define per(i,n,a) for(int i = n-1;i >=a;i--)
#define pb push_back
#define VI vector<int>
#define QI queue<int>
#define log2(N) log10(N)/log10(2)
#define eps 1e-8 typedef long long ll; using namespace std; int main(){
int T;
scanf("%d",&T);
while(T--){
ll a,b,c,d;
scanf("%I64d%I64d%I64d",&a,&b,&c);
d = b*b - *a*c;
if(d == (ll)sqrt(d)*(ll)sqrt(d)){
puts("YES");
}
else{
puts("NO");
}
}
return ;
}

HDU 5616:http://acm.hdu.edu.cn/showproblem.php?pid=5616

01背包,记得要来回两次

另外为了简便用到了操作符或 0|0 = 0, 0|1 = 1, 1|1 = 1

 #include <cstdio>
#include <iostream>
#include <cmath>
#include <cstring>
#include <queue>
#include <vector>
#include <algorithm> #define rep(i,a,n) for(int i = a;i < n;i++)
#define per(i,n,a) for(int i = n-1;i >=a;i--)
#define pb push_back
#define VI vector<int>
#define QI queue<int>
#define log2(N) log10(N)/log10(2)
#define eps 1e-8 typedef long long ll; using namespace std; const int N = + ;
const int MAXN = + ;
int n,sum;
int a[N] = {};
int dp[MAXN] = {}; int main(){
int T;
scanf("%d",&T);
while(T--){
sum = ;
scanf("%d",&n);
rep(i,,n){
scanf("%d",&a[i]);
sum += a[i];
}
memset(dp,,sizeof(dp));
dp[] = ;
rep(i,,n){
per(j,sum+,a[i]){
dp[j] |= dp[j-a[i]];
}
}
rep(i,,n){
rep(j,,sum-a[i]+){
dp[j] |= dp[j+a[i]];
}
}
int z;
scanf("%d",&z);
while(z--){
int s;
scanf("%d",&s);
if(dp[s]){
printf("YES\n");
}
else{
printf("NO\n");
}
}
}
return ;
}

HDU 5617:http://acm.hdu.edu.cn/showproblem.php?pid=5617

学习的是NANOAPE的代码。赶紧记录一下。

写得还是糊里糊涂,希望牛人能再指导一下。

 #include <cstdio>
#include <iostream>
#include <cmath>
#include <cstring>
#include <queue>
#include <vector>
#include <algorithm> #define rep(i,a,n) for(int i = a;i <= n;i++)
#define per(i,n,a) for(int i = n;i >= a;i--)
#define pb push_back
#define VI vector<int>
#define QI queue<int>
#define log2(N) log10(N)/log10(2)
#define eps 1e-8 typedef long long ll; using namespace std; const int MOD = ;
const int MAXN = + ;
char s[MAXN][MAXN] = {};
int n;
int dp[][MAXN][MAXN] = {}; //第一个表示状态,第二个表示j横坐标,第三个表示k横坐标 int main(){
int T;
scanf("%d",&T);
while(T--){
scanf("%d",&n);
rep(i,,n-){
scanf("%s",s+i); //s+i相当于s[i]
}
memset(dp,,sizeof(dp));
if(s[][] != s[n-][n-]){ //如果左上角第一个和右下角最后一个不一样,直接输出0
puts("");
continue;
}
dp[][][n] = ; //先让起点和终点为1
rep(i,,n){
int a = i& ;int b = - a; //可以产生两种状态,0和1
rep(j,,i){
per(k,n,n-i){
if(s[j-][i-j+-] == s[k-][n-(i-(n-k))+-]){ //这步非常关键,估计也看的出来是在比较是否两个字母相同。其中n-(i-(n-k))最难理解,大牛写得更是看不懂,如果是我自己的话这样写就能推理出来了吧^_^
dp[a][j][k] = (dp[b][j][k]+dp[b][j-][k]+dp[b][j][k+]+dp[b][j-][k+])%MOD; //分别把前后坐标时候的总数给加起来
}
else{
dp[a][j][k] = ;
}
}
}
} int ans = ;
rep(i,,n){
(ans += dp[n&][i][i])%=MOD; //假设分别是从两头开始出发的,当他们的横坐标都是i且相遇的时候的总数
}
printf("%d\n",ans);
}
return ;
}

BestCoder Round 70的更多相关文章

  1. BestCoder Round #70 Jam's math problem(hdu 5615)

    Problem Description Jam has a math problem. He just learned factorization. He is trying to factorize ...

  2. hdu5634 BestCoder Round #73 (div.1)

    Rikka with Phi  Accepts: 5  Submissions: 66  Time Limit: 16000/8000 MS (Java/Others)  Memory Limit: ...

  3. BestCoder Round #89 02单调队列优化dp

    1.BestCoder Round #89 2.总结:4个题,只能做A.B,全都靠hack上分.. 01  HDU 5944   水 1.题意:一个字符串,求有多少组字符y,r,x的下标能组成等比数列 ...

  4. BestCoder Round #90 //div all 大混战 一题滚粗 阶梯博弈,树状数组,高斯消元

    BestCoder Round #90 本次至少暴露出三个知识点爆炸.... A. zz题 按题意copy  Init函数 然后统计就ok B. 博弈 题  不懂  推了半天的SG.....  结果这 ...

  5. bestcoder Round #7 前三题题解

    BestCoder Round #7 Start Time : 2014-08-31 19:00:00    End Time : 2014-08-31 21:00:00Contest Type : ...

  6. Bestcoder round #65 && hdu 5593 ZYB's Tree 树形dp

    Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total Submissio ...

  7. Bestcoder round #65 && hdu 5592 ZYB's Premutation 线段树

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total Submissio ...

  8. 暴力+降复杂度 BestCoder Round #39 1002 Mutiple

    题目传送门 /* 设一个b[]来保存每一个a[]的质因数的id,从后往前每一次更新质因数的id, 若没有,默认加0,nlogn复杂度: 我用暴力竟然水过去了:) */ #include <cst ...

  9. 贪心 BestCoder Round #39 1001 Delete

    题目传送门 /* 贪心水题:找出出现次数>1的次数和res,如果要减去的比res小,那么总的不同的数字tot不会少: 否则再在tot里减去多余的即为答案 用set容器也可以做,思路一样 */ # ...

随机推荐

  1. C#高级编程笔记 2016年10月26日 MVC入门 Controller

    1.MVC的定义:   Models: Classes that represent the data of the application  and that use validation logi ...

  2. JQ倒计时天时分秒

    <div id="times_wrap" class="time_num"> 距离现在时间: <div class="time_w& ...

  3. 按钮button的css样式(扁平化底色)

    .button { background-color: #ff0000; /* Green */ border: none; color: white; font-family:Arial; padd ...

  4. Excel中VBA进行插入列、格式化、排序

    在数据分析中经常需要对数据进行排序.排名,观察指标排名变化情况,手工处理的话不是太困难,但经常使用,还是编写宏比较方便. 宏命令比较简单,不多解释,只说一下注意事项: 1.有合并单元格,比如列.行合并 ...

  5. 阿里云centos7基于搭建VPN

    本文参考自:http://www.xxkwz.cn/1495.html 前段时间使用pptp搭建了一个VPN,速度很快,但是用了大概一个月挂了,估计是被墙了吧,于是,用shadowsocks重新搭建了 ...

  6. centos6.6 安装jdk1.7

    1:在oracle官网下载jdk liunx版本,放入到虚拟机中 2:解压jdk,解压命令 tar -xvzf jdk-7u15-linux-x64.tar.gz 解压完成(如下图) 3:在/usr/ ...

  7. kettle系列-4.kettle定制化开发工具类

    要说的话这个工具类还是比较简单的,每个方法体都比较小,但用起来还是可以的,把开发中一些常用的步骤封装了下,不用去kettle源码中找相关操作的具体实现了. 算了废话不多了,直接上重点,代码如下: im ...

  8. python学习笔记(4)--函数

    1.函数 函数是指将一组语句的集合通过一个名字封装起来.要想执行这个函数,只需调用其函数名即可. 函数的特性: 1.减少重复代码 2.使程序变的课扩展 3.使程序变得易维护 语法定义: def pri ...

  9. 浅析/dev/shm

    一,/dev/shm 概念 /dev/shm 是一个tmpfs文件系统,临时文件系统,是基于内存的文件系统,也就是说/dev/shm中的文件是直接写入内存的,而不占用硬盘空间. 在Centos和Red ...

  10. Win10 UI入门RelativePanel(2)

    自适应 1) Gif: 添加动画 2)