5 Intelligence1028

尚未进行身份认证

我要认证

每天提高一点点

等级
TA的排名 2w+

HDU 1581(Number Game)

#include <iostream>#include <cstring>#include <algorithm>using namespace std;const int MAXS = 1 << 20;const int MAXN = 25;int num[MAXN]; //可选的数int win[MAXS]; //必胜的状态//改变状态,根据数字x改变状态sint changeState(int s, int x){ fo.

2020-07-08 09:20:01

HDU 1580(Always On the Run)

动态规划题,本题与 HDU 1474 完全相同。#include <iostream>#include <algorithm>using namespace std;const int MAXN = 15;const int MAXK = 1005;const int MAXD = 35;const int INF = 0x3f3f3f3f;int dp[MAXN][MAXK]; //dp[i][j]表示从城市1到城市i,乘坐j次飞机,最小花费int day[

2020-07-07 11:00:00

HDU 1579(Function Run Fun)

动态规划题。#include <iostream>#include <cstring>using namespace std;const int MAXN = 25;int dp[MAXN][MAXN][MAXN];void init(){ for (int a = 0; a <= 20; a++) { for (int b = 0; b <= 20; b++) { for (int c = 0; c <= 20; c++)

2020-07-06 23:23:23

HDU 1578(Martian Mining)

动态规划题,设dp[i][j] 表示从 (0, 0) 到 (i, j) 之间的矩阵最多能收集的矿石数量,Y[i][j] 表示 Yeyenum 矿石从 (i, j) 向西最多能运的数量,B[i][j] 表示 Bloggium 矿石从 (i, j) 向北最多能运的数量。状态转移方程:dp[i][j] = max(dp[i - 1][j] + Y[i][j], dp[i][j - 1] + B[i][j])。#include <cstdio>#include <cstring&gt.

2020-07-05 16:30:30

HDU 1577(WisKey的眼神)

#include <iostream>#include <cmath>using namespace std;int gcd(int a, int b){ if (b == 0) return a; else return gcd(b, a % b);}int main(){ int L, sx, sy, dx, dy; while (cin >> L) { if (L == 0) break; cin >>.

2020-07-03 23:45:01

HDU 1576(A/B)

#include <iostream>using namespace std;void exgcd(int a, int b, int& x, int& y){ if (b == 0) { x = 1; y = 0; } else { exgcd(b, a % b, y, x); y -= x * (a / b); }}int main() { .

2020-07-02 09:40:00

HDU 1575(Tr A)

矩阵快速幂,套用标准模板即可。#include <cstdio>#include <cstring>using namespace std;const int mod = 9973;const int MAXN = 15;int n, k;struct Matrix{ int arr[MAXN][MAXN];}m;//矩阵乘法,矩阵a*矩阵b,同时取余Matrix Mul(Matrix a, Matrix b) { Matrix c;

2020-06-29 10:10:09

HDU 1574(RP问题)

0-1背包问题。本题中,重量和价值可能为正,也可能为负。为了方便计算,将所有值都 +10000,让这些值都变为正。设 dp[i] 表示 RP 为 i 时的最大获益值。状态转移方程:dp[i+a] = max(dp[i+a], dp[i]+c)。#include <cstdio>#include <algorithm>using namespace std;const int MAXN = 20005;const int INF = 0x3f3f3f3f;int

2020-06-28 19:50:01

HDU 1573(X问题)

#include <iostream>using namespace std;const int MAXM = 15;int A[MAXM], B[MAXM];int gcd(int a, int b){ if (!b) return a; else return gcd(b, a % b);}void exgcd(int a, int b, int& x, int& y){ if (!b) .

2020-06-23 11:22:33

HDU 1572(下沙小面的(2))

暴力搜索即可,使用 STL 全排列函数next_permutation,详细见注释。#include <cstdio>#include <algorithm>using namespace std;const int MAXN = 35;const int MAXP = 10;int dis[MAXN][MAXN]; //车站间的距离int to[MAXP]; //各乘客的到达车站int main(){ int N; while (scanf("%d".

2020-06-22 22:22:22

HDU 1571(下沙小面的(1))

模拟题,详细见注释。#include <cstdio>#include <cstring>using namespace std;const int MAXN = 35;const int MAXP = 10;const int INF = 0x3f3f3f3f;int dis[MAXN][MAXN]; //车站间的距离struct Passenger //乘客{ int to; //目的车站 int num; //上车次序}p[MAXP];int

2020-06-22 18:30:30

HDU 1570(A C)

基础题。#include <iostream>using namespace std;int main(){ int T; cin >> T; while (T--) { char c; cin >> c; int n, m; cin >> n >> m; int facN = 1, facM = 1, facNM = 1; for (int i = 1; i <= n; i++) //n!

2020-06-18 16:00:00

HDU 1569(方格取数(2))

#include <cstdio>#include <cstring>#include <queue>#include <algorithm>using namespace std;const int N = 1e5 + 10;const int M = 1e5 + 50;const int INF = 0x3f3f3f3f;int total; //边的总数量int s, t; //源点、汇点int head[N];int dep.

2020-06-18 15:40:00

HDU 1568(Fibonacci)

#include <iostream>#include <cmath>using namespace std;int main(){ int f[21] = { 0,1 }; //前20个Fibonacci数 for (int i = 2; i < 21; i++) { f[i] = f[i - 1] + f[i - 2]; } int n; double s = (sqrt(5.0) + 1.0) /.

2020-06-16 11:40:01

HDU 1567(2006)

基础题,关键是理解题意,要求每一行的输入为每支队伍比赛且仅比赛一次,输出整个比赛安排是否合理。#include <cstdio>#include <cstring>using namespace std;const int MAXN = 2010;bool vis[MAXN];int num[MAXN];int main(){ int n; while (scanf("%d", &n) != EOF) { memset(num, 0, siz

2020-06-15 08:40:00

HDU 1565(方格取数(1))

#include <iostream>#include <algorithm>using namespace std;const int L = 20000;int n;int mp[25][25]; //地图int dp[L], temp[L];int pre[L], now[L]; //上一行的所有状态,当前行的所有状态int preNum, nowNum; //上一行的状态数,当前行的状态数int ans[L]; //各状态选择的数之和//深搜,搜索当.

2020-06-14 08:20:02

HDU 1564(Play a game)

找规律题,如果 n 为偶数,先手赢;如果 n 为奇数,后手赢。#include <iostream>using namespace std;int main(){ int n; while (cin >> n) { if (n == 0) break; if (n % 2 == 0) cout << "8600" << endl; else cout << "ailyanlu" << e

2020-06-13 08:30:30

HDU 1563(Find your present!)

基础题,使用 map 数据结构即可。#include <iostream>#include <map>using namespace std;map<int, int> mp;int main(){ int n; while (cin >> n) { if (n == 0) break; mp.clear(); int num; while (n--) //输入,记录每个输入数的个数 { cin &g

2020-06-12 10:10:09

HDU 1562(Guess the number)

基础题。#include <iostream>using namespace std;int main(){ int T; cin >> T; while (T--) { int a, b, c; cin >> a >> b >> c; int x; for (x = 1000; x <= 9999; x++) { if (x % a == 0 && (x + 1) % b ==

2020-06-11 07:50:00

HDU 1561(The more, The Better)

#include <iostream>#include <algorithm>using namespace std;const int MAXN = 205;struct Edge //边{ int to; //到达结点 int next; //出发结点的下一条边的编号}edge[MAXN];int dp[MAXN][MAXN]; //动态规划数组int head[MAXN]; //head[i]表示从结点i出发的第1条边的编号int val.

2020-06-10 10:00:00

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。