BestCoder Round #70
模拟 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相关推荐
- hdu4585 amp; BestCoder Round #1 项目管理(vector应用)
主题链接:http://acm.hdu.edu.cn/showproblem.php?pid=4858 项目管理 Time Limit: 2000/1000 MS (Java/Others) M ...
- 矩阵快速幂---BestCoder Round#8 1002
当要求递推数列的第n项且n很大时,怎么快速求得第n项呢? 可以用矩阵快速幂来加速计算. 我们可以用矩阵来表示数列递推公式 比如fibonacci数列 可以表示为 [f(n) f(n-1)] = [ ...
- 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 ...
- 贪心/二分查找 BestCoder Round #43 1002 pog loves szh II
题目传送门 1 /* 2 贪心/二分查找:首先对ai%=p,然后sort,这样的话就有序能使用二分查找.贪心的思想是每次找到一个aj使得和为p-1(如果有的话) 3 当然有可能两个数和超过p,那么an ...
- 贪心 BestCoder Round #39 1001 Delete
题目传送门 1 /* 2 贪心水题:找出出现次数>1的次数和res,如果要减去的比res小,那么总的不同的数字tot不会少: 3 否则再在tot里减去多余的即为答案 4 用set容器也可以做,思 ...
- HDU 5228 ZCC loves straight flush( BestCoder Round #41)
题目链接:ZCC loves straight flush 题面: ZCC loves straight flush Time Limit: 2000/1000 MS (Java/Others) ...
- 字符串处理 BestCoder Round #43 1001 pog loves szh I
题目传送门 1 /* 2 字符串处理:是一道水题,但是WA了3次,要注意是没有加'\0'的字符串不要用%s输出,否则在多组测试时输出多余的字符 3 */ 4 #include <cstdio&g ...
- BestCoder Round #90 Kblack loves flag
BestCoder Round #90 Kblack loves flag 问题描述 kblack喜欢旗帜(flag),他的口袋里有无穷无尽的旗帜. 某天,kblack得到了一个n∗mn*mn∗ ...
- HDU 5804 BestCoder Round #86 Price List (水题)
Price List 题目链接: 点我打开链接 Source BestCoder Round #86 题意:有一个人去 n 间商店购物,在每家商店购买最多一件物品,也可以什么都不买.给你每家商店的物 ...
- BestCoder Round #87(1003-【思维】【LISLCS】)
题目链接:点击打开链接 1003-LCIS Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Ot ...
最新文章
- OpenCV YUV 与 RGB的互转(草稿)
- POJ 3087 Shuffle'm Up DFS
- boost::math模块使用拉普拉斯(与正态比较)分布的示例的测试程序
- DateTime时间的比较问题
- 三个用户在同一系统中同时对他们的c语言,杭州电子科技大学学生考试卷2013年操作系统试卷(2份,有答案)...
- python中字符串函数的作用_python 基础学习笔记(2)---字符串功能函数
- Abp vNext 自定义 Ef Core 仓储引发异常
- 二进制、八进制、十进制与十六进制
- 我的第二次知识图谱问答(末尾gan货)
- 成功解决AttributeError: ‘Series‘ object has no attribute ‘split‘
- Metal每日分享,调整胶片颗粒感滤镜效果
- Matlab操作excel格式文件
- 乘风破浪的码农——仿佛身体被掏空
- 关于区块链概念的理解
- eNSP防火墙进入WEB界面登陆
- 苹果电脑销量大跌40%,PC市场无战事
- 项目经理 如何正确处理突发事件
- 张量学习(9):主方向与主分量
- 前端拖拽排序插件的实现——讲一个六耳猕猴和孙悟空的故事
- 视频片头片尾处理器免费体验
热门文章
- fmt—fmt:formatDate的输出格式
- MySQL呕血汇总--从基础到毕业【收藏篇】
- android debug 签名,Android Studio中debug模式下使用release签名
- oracle数据库tx锁,oracle数据库有把TX锁,如何定位锁在哪?
- java逻辑运算符的使用
- 子过程或函数未定义_Power Pivotamp;Power BI DAX函数说明速查
- mybatis-plus实现乐观锁
- java求实数的整数部分和小数部分_输入一个浮点数,并输出该数的整数部分和小数部分...
- unity如何得到所有子对象_Unity中获取多级子父节点的对象的两种方式
- 机器学习分类算法_收藏:机器学习算法分类图谱及其优缺点分析