模拟 1001 Jam's math problem

判断b ^ 2 - 4ac是否为完全平方数.当delta < 0, sqrt (delta) 输出为nan, 但是好像也能计算?

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <vector>
#include <string>
#include <iostream>
#include <queue>
#include <map>
#include <cmath>typedef long long ll;
const int N = 1e5 + 5;
const int INF = 0x3f3f3f3f;int main(void)  {int T; std::cin >> T;while (T--) {ll a, b, c;    std::cin >> a >> b >> c;ll d = b * b - 4 * 1ll * a * c;if (d < 0) puts ("NO");else  {ll e = sqrt (d);if (e * e == d) puts ("YES");else puts ("NO");}}return 0;
}
/*
long long   long double
sqrt () HDU %I64d
*/

01DP 1002 Jam's balance

原来是背包,暴力枚举是不可做的.dp[i][j] 表示前i个砝码,能称多少的重量,当然砝码也能放在另一边也就是j - w,如果j - w < 0, -(j - w)表示将物品放在堆满砝码的一边,w放在另一边.

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <vector>
#include <string>
#include <queue>
#include <map>
#include <iostream>
#include <cmath>int dp[22][2002];int main(void)   {int T; scanf ("%d", &T);while (T--)  {int n; scanf ("%d", &n);memset (dp, 0, sizeof (dp));dp[0][0] = 1;for (int w, i=1; i<=n; ++i) {scanf ("%d", &w);for (int j=0; j<=2000; ++j)  {if (!dp[i-1][j])   continue;dp[i][j] = dp[i][j+w] = 1;dp[i][abs (j-w)] = 1;}}int m;    scanf ("%d", &m);for (int w, i=1; i<=m; ++i)   {scanf ("%d", &w);if (dp[n][w])   puts ("YES");else puts ("NO");}}return 0;
}
//01dp "twice"

  

dp(优化) 1003 Jam's maze

这种问方案数的以后应该要想到可能是DP.f[x1][y1][x1][y1]=f[x1][y1-1][x2][y2+1]+f[x1][y1-1][x2+1][y2]+f[x1-1][y1][x2][y2+1]+f[x1-1][y1][x2+1][y2].对它优化,f[i][x1][x2],通过走的步数以及x能计算出当前走到的y,再优化点把第一维改成滚动的,即dp[now][x1][x2] <- dp[now^1][x1][x2] ... dp[now^1][x1][x2]是(x1, y1 - 1) 和 (x2, y2 - 1), 其他类似

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <vector>
#include <string>
#include <queue>
#include <map>
#include <cmath>typedef long long ll;
const int N = 5e2 + 5;
const int MOD = 5201314;
int dp[2][N][N];
char str[N][N];void add(int &a, int b)  {a += b;if (a >= MOD) a %= MOD;
}int main(void) {int T; scanf ("%d", &T);while (T--)  {int n; scanf ("%d", &n);for (int i=1; i<=n; ++i)  scanf ("%s", str[i] + 1);if (str[1][1] != str[n][n])    puts ("0");else   {memset (dp, 0, sizeof (dp));int now = 0;dp[now][1][n] = 1;for (int s=1; s<n; ++s)  {now ^= 1; memset (dp[now], 0, sizeof (dp[now]));for (int x1=1; x1<=n; ++x1)    {for (int x2=n; x2>=1; --x2)   {if (x1 - 1 > s || n - x2 > s)    continue;int y1 = 1 + s - (x1 - 1);int y2 = n - (s - (n - x2));if (str[x1][y1] != str[x2][y2])  continue;add (dp[now][x1][x2], dp[now^1][x1][x2]);add (dp[now][x1][x2], dp[now^1][x1][x2+1]);add (dp[now][x1][x2], dp[now^1][x1-1][x2]);add (dp[now][x1][x2], dp[now^1][x1-1][x2+1]);}}}int ans = 0;for (int i=1; i<=n; ++i)  add (ans, dp[now][i][i]);printf ("%d\n", ans);}}return 0;
}

  

转载于:https://www.cnblogs.com/Running-Time/p/5181007.html

BestCoder Round #70相关推荐

  1. hdu4585 amp; BestCoder Round #1 项目管理(vector应用)

    主题链接:http://acm.hdu.edu.cn/showproblem.php?pid=4858 项目管理 Time Limit: 2000/1000 MS (Java/Others)    M ...

  2. 矩阵快速幂---BestCoder Round#8 1002

    当要求递推数列的第n项且n很大时,怎么快速求得第n项呢? 可以用矩阵快速幂来加速计算. 我们可以用矩阵来表示数列递推公式 比如fibonacci数列 可以表示为 [f(n)   f(n-1)] = [ ...

  3. hdu4932 Miaomiao#39;s Geometry (BestCoder Round #4 枚举)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4932 Miaomiao's Geometry Time Limit: 2000/1000 MS (Ja ...

  4. 贪心/二分查找 BestCoder Round #43 1002 pog loves szh II

    题目传送门 1 /* 2 贪心/二分查找:首先对ai%=p,然后sort,这样的话就有序能使用二分查找.贪心的思想是每次找到一个aj使得和为p-1(如果有的话) 3 当然有可能两个数和超过p,那么an ...

  5. 贪心 BestCoder Round #39 1001 Delete

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

  6. HDU 5228 ZCC loves straight flush( BestCoder Round #41)

    题目链接:ZCC loves straight flush 题面: ZCC loves straight flush Time Limit: 2000/1000 MS (Java/Others)    ...

  7. 字符串处理 BestCoder Round #43 1001 pog loves szh I

    题目传送门 1 /* 2 字符串处理:是一道水题,但是WA了3次,要注意是没有加'\0'的字符串不要用%s输出,否则在多组测试时输出多余的字符 3 */ 4 #include <cstdio&g ...

  8. BestCoder Round #90 Kblack loves flag

     BestCoder Round #90 Kblack loves flag 问题描述 kblack喜欢旗帜(flag),他的口袋里有无穷无尽的旗帜. 某天,kblack得到了一个n∗mn*mn∗ ...

  9. HDU 5804 BestCoder Round #86 Price List (水题)

    Price List 题目链接: 点我打开链接 Source BestCoder Round #86  题意:有一个人去 n 间商店购物,在每家商店购买最多一件物品,也可以什么都不买.给你每家商店的物 ...

  10. BestCoder Round #87(1003-【思维】【LISLCS】)

    题目链接:点击打开链接 1003-LCIS Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Ot ...

最新文章

  1. OpenCV YUV 与 RGB的互转(草稿)
  2. POJ 3087 Shuffle'm Up DFS
  3. boost::math模块使用拉普拉斯(与正态比较)分布的示例的测试程序
  4. DateTime时间的比较问题
  5. 三个用户在同一系统中同时对他们的c语言,杭州电子科技大学学生考试卷2013年操作系统试卷(2份,有答案)...
  6. python中字符串函数的作用_python 基础学习笔记(2)---字符串功能函数
  7. Abp vNext 自定义 Ef Core 仓储引发异常
  8. 二进制、八进制、十进制与十六进制
  9. 我的第二次知识图谱问答(末尾gan货)
  10. 成功解决AttributeError: ‘Series‘ object has no attribute ‘split‘
  11. Metal每日分享,调整胶片颗粒感滤镜效果
  12. Matlab操作excel格式文件
  13. 乘风破浪的码农——仿佛身体被掏空
  14. 关于区块链概念的理解
  15. eNSP防火墙进入WEB界面登陆
  16. 苹果电脑销量大跌40%,PC市场无战事
  17. 项目经理 如何正确处理突发事件
  18. 张量学习(9):主方向与主分量
  19. 前端拖拽排序插件的实现——讲一个六耳猕猴和孙悟空的故事
  20. 视频片头片尾处理器免费体验

热门文章

  1. fmt—fmt:formatDate的输出格式
  2. MySQL呕血汇总--从基础到毕业【收藏篇】
  3. android debug 签名,Android Studio中debug模式下使用release签名
  4. oracle数据库tx锁,oracle数据库有把TX锁,如何定位锁在哪?
  5. java逻辑运算符的使用
  6. 子过程或函数未定义_Power Pivotamp;Power BI DAX函数说明速查
  7. mybatis-plus实现乐观锁
  8. java求实数的整数部分和小数部分_输入一个浮点数,并输出该数的整数部分和小数部分...
  9. unity如何得到所有子对象_Unity中获取多级子父节点的对象的两种方式
  10. 机器学习分类算法_收藏:机器学习算法分类图谱及其优缺点分析