ccf-csp历年题解
那年秋天我背上行囊离开家
这个作者很懒,什么都没留下…
展开
-
工资计算
#include <bits/stdc++.h>using namespace std;const int INF = 1000000000;//2) A中不超过1500元的部分,税率3%;// 3) A中超过1500元未超过4500元的部分,税率10%;// 4) A中超过4500元未超过9000元的部分,税率20%;// 5) A中超过9000元未超过35000元的部分,税率25%;// 6) A中超过35000元未超过55000元的部分,税率30%;// 7) A原创 2021-03-02 11:13:22 · 152 阅读 · 0 评论 -
火车购票
#include <bits/stdc++.h>using namespace std;const int maxn = 22;int empty[maxn];const int N = 20;int main(){ for(int i=0; i<N; ++i) empty[i] = 5; int n; scanf("%d", &n); for(int k=0; k<n; ++k){ int p; scanf("%d", &p); boo原创 2021-03-02 10:19:29 · 103 阅读 · 0 评论 -
消除类游戏
#include <bits/stdc++.h>using namespace std;int n, m;const int maxn = 35;int board[maxn][maxn];struct Pos{ int x, y; Pos(int xx, int yy): x(xx),y(yy) {}};vector<Pos> v;int main(){ memset(board,0,sizeof(board)); scanf("%d%d", &n,原创 2021-03-02 09:43:53 · 130 阅读 · 0 评论 -
俄罗斯方块
#include <bits/stdc++.h>using namespace std;const int maxR = 15;const int maxC = 10;const int N = 4;int board[maxR+1][maxC];int block[N][N];struct Pos{ int x, y; Pos(int xx, int yy):x(xx),y(yy) {}};vector<Pos> v;int main(){ memset(原创 2021-03-02 09:23:10 · 99 阅读 · 0 评论 -
小明种苹果
#include <bits/stdc++.h> using namespace std;const int maxn = 1000 + 5;int flag[maxn] = {0};int main(){ int n, m, sum, a, t=0, d=0, e=0; scanf("%d", &n); for(int i=0; i<n; ++i){ scanf("%d%d", &m,&sum); for(int j=2; j<=m;原创 2021-03-01 09:32:13 · 83 阅读 · 0 评论 -
回收站选址
#include <bits/stdc++.h> using namespace std;const int maxn = 4;int cnt[maxn+1] = {0};vector<pair<int,int>> p;map<pair<int,int>, int> ps;int n;int main(){ scanf("%d", &n); for(int i=0; i<n; ++i){ int x, y;原创 2021-03-01 09:15:54 · 84 阅读 · 0 评论 -
ccf最大的矩形
#include <bits/stdc++.h> using namespace std;const int maxn = 1000 + 5;int h[maxn];int main(){ int n; scanf("%d", &n); for(int i=0; i<n; ++i) scanf("%d", &h[i]); int ans = 0; for(int i=0; i<n; ++i){ int minh = h[i]; for(int原创 2021-02-25 10:50:42 · 80 阅读 · 0 评论 -
ccf日期计算
#include <bits/stdc++.h>using namespace std;//周日用数字0表示int monthdays[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; //平年时每个月有多少天int daysOfMonth(int y, int m) { //判断y年m月有几天 if ((y % 400 =原创 2021-02-24 10:25:51 · 120 阅读 · 0 评论 -
ccf节日
#include <bits/stdc++.h>using namespace std;//周日用数字0表示int monthdays[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; //平年时每个月有多少天int daysOfMonth(int y, int m) { //判断y年m月有几天 if ((y % 400 =原创 2021-02-24 10:08:04 · 94 阅读 · 0 评论 -
ccf碰撞的小球——碰撞前后相对位置不变
//思路:碰撞前后小球的相对位置不变。由于本题输入不是按位置顺序输入,因此用order[i]用于输入输出转换 #include <bits/stdc++.h> using namespace std;const int maxn = 100 + 5;struct Ant{ int id; //小球编号 int p; //小球位置 bool operator< (const Ant& a) const{ //按位置排序 return p < a.p;原创 2021-02-23 18:36:12 · 90 阅读 · 0 评论 -
ccf网络延时
#include <bits/stdc++.h> using namespace std;int n, m;const int maxn = 20000 + 5;struct Edge{ int from, to, dist; Edge(int u, int v, int d=1): from(u),to(v),dist(d) {}};vector<Edge> edges;vector<int> G[maxn];bool vis[maxn];int原创 2021-02-21 20:10:15 · 118 阅读 · 0 评论 -
ccf最优配餐
#include <bits/stdc++.h> using namespace std;const int INF = 1000000000;const int maxn = 1000 + 5;int n, m, k, _d;struct Cell{ int r, c; Cell(int r, int c):r(r),c(c) {}};const int dr[] = {-1,1,0,0};const int dc[] = {0,0,-1,1};int d[maxn][m原创 2021-02-21 19:09:25 · 93 阅读 · 0 评论 -
ccf游戏——BFS状态转换的应用
#include <bits/stdc++.h>using namespace std;int n, m, t;struct Node{ int r, c, t; Node(int r=0, int c=0, int t=0): r(r),c(c),t(t) {}};const int maxn = 100 + 5;int danger_area[maxn][maxn];bool vis[maxn][maxn][maxn];const int dr[] = {-1, 0, 1原创 2021-02-21 12:16:37 · 85 阅读 · 0 评论 -
ccf高速公路——Tarjan算法的应用
#include <bits/stdc++.h> using namespace std;const int maxn = 10000 + 5;vector<int> G[maxn];int pre[maxn], lowlink[maxn], sccno[maxn], dfs_clock, scc_cnt;stack<int> S;void dfs(int u){ pre[u] = lowlink[u] = ++dfs_clock; S.push(u);原创 2021-02-20 14:54:41 · 105 阅读 · 0 评论 -
ccf送货——打印无向图欧拉路的字典序路径
#include <bits/stdc++.h> using namespace std;const int maxn = 10000 + 5;set<int> G[maxn];bool vis[maxn][maxn];int pa[maxn];int findset(int x) {return pa[x]==x ? x : pa[x]=findset(pa[x]);}int deg[maxn];vector<int> d;struct Edge{原创 2021-02-20 11:19:46 · 123 阅读 · 0 评论 -
ccf最优灌溉——最小生成树的权值和
#include <bits/stdc++.h>using namespace std;const int maxn = 1000 + 5;const int INF = 1000000000;int n;int pa[maxn];int findset(int x) {return pa[x]==x ? x : pa[x]=findset(pa[x]);}struct Edge{ int u, v, d; Edge(int u, int v, int d):u(u),v(v)原创 2021-02-19 22:12:27 · 134 阅读 · 0 评论 -
ccf交通规划——迪杰斯特拉的应用
#include <bits/stdc++.h>using namespace std;const int maxn = 10000 + 10;const int INF = 1000000000;struct Edge{ int from, to, dist; Edge(int u, int v, int d): from(u),to(v),dist(d) {}};struct HeapNode{ int d, u; bool operator< (const Hea原创 2021-02-19 21:46:42 · 113 阅读 · 0 评论 -
ccf数据中心——最小生成树的最大边
#include <bits/stdc++.h>using namespace std;const int maxn = 100000 + 5;const int INF = 1000000000;int n;int pa[maxn];int findset(int x) {return pa[x]==x ? x : pa[x]=findset(pa[x]);}struct Edge{ int u, v, d; Edge(int u, int v, int d):u(u),v(原创 2021-02-19 14:23:06 · 96 阅读 · 0 评论 -
ccf地铁修建——最小生成树
#include <bits/stdc++.h>using namespace std;const int maxn = 100000 + 5;const int INF = 1000000000;int n;int pa[maxn];int findset(int x) {return pa[x]==x ? x : pa[x]=findset(pa[x]);}struct Edge{ int u, v, d; Edge(int u, int v, int d):u(u),v(原创 2021-02-19 14:00:20 · 136 阅读 · 0 评论 -
ccf24点——表达式树求解
#include <bits/stdc++.h> using namespace std;const int maxn = 1000;string str;int lch[maxn], rch[maxn]; char op[maxn];int nc = 0;int build_tree(const string& s, int x, int y){ int i, c1=-1, c2=-1, p=0; int u; if(y-x == 1){ u = ++nc;原创 2021-02-19 11:05:01 · 130 阅读 · 0 评论 -
ccf-csp 202012-1 期末预测之安全指数
#include <bits/stdc++.h> using namespace std;int main(){ int n; while(scanf("%d", &n)==1 && n){ int ans = 0, wi, si; while(n--){ scanf("%d%d", &wi, &si); ans += wi*si; } printf("%d\n", ans<0?0:ans); } return原创 2021-02-04 12:31:07 · 103 阅读 · 0 评论