无休网站建设,百度经验首页,洛可可设计公司薪资,施工企业管理制度完整版目录 RC-u1 大家一起查作弊 分数 15
RC-u2 谁进线下了#xff1f;II 分数 20
RC-u3 势均力敌 分数 25
RC-u4 City 不 City 分数 30
RC-u5 贪心消消乐 分数 30 RC-u1 大家一起查作弊 分数 15
简单模拟题#xff0c;对于多行读入使用while(getline(cin…目录 RC-u1 大家一起查作弊 分数 15
RC-u2 谁进线下了II 分数 20
RC-u3 势均力敌 分数 25
RC-u4 City 不 City 分数 30
RC-u5 贪心消消乐 分数 30 RC-u1 大家一起查作弊 分数 15
简单模拟题对于多行读入使用while(getline(cin,s))即可
// 数学公式要变形
// 莫急莫急先读题
#include bits/stdc.h
using namespace std;
#define lowbit(x) (x(-x))
#define endl \n
#define ios ios::sync_with_stdio(0); cin.tie(0),cout.tie(0);
#define LF(x) fixedsetprecision(x)// c 保留小数
#define den(a) cout #a a \n;
#define deg(a) cout #a a ;
typedef long long LL;
typedef pairint, int PII;
const int N1000010,M1010,INF0x3f3f3f3f,mod1e97;
const double paiacos(-1.0);// pai
mapint,int mp;
int t,n,m;//是不是关键字
bool check(char x){if(Ax and xZ) return true;if(ax and xz) return true;if(isdigit(x)) return true;return false;
}
//可疑分数计算
int get(string s){int big 0, small 0, sz 0;for(autox:s){if(Ax and xZ) big 1;if(ax and xz) small 1;if(isdigit(x)) sz 1;}if(big and small and sz) return 5;if(sz and (big or small)) return 3;if(big and small) return 1;return 0;
}
void solve(){int sum 0,len 0, cnt 0;string s;while(getline(cin,s)){string now;for(autov:s)if(check(v)) now v;else{if(!now.empty()){sum get(now);len now.size();cnt;}now.clear();}// 可能最后还有东西if(!now.empty()){sum get(now);len now.size();cnt;}}cout sum endl;cout len cnt endl;return ;
}
signed main ()
{ios// 不能有printf puts scanfint t1;while(t--){solve();}
}RC-u2 谁进线下了II 分数 20
简单模拟按照题目意思模拟即可
// 数学公式要变形
// 莫急莫急先读题
#include bits/stdc.h
using namespace std;
#define lowbit(x) (x(-x))
#define endl \n
#define ios ios::sync_with_stdio(0); cin.tie(0),cout.tie(0);
#define LF(x) fixedsetprecision(x)// c 保留小数
#define den(a) cout #a a \n;
#define deg(a) cout #a a ;
typedef long long LL;
typedef pairint, int PII;
const int N1000010,M1010,INF0x3f3f3f3f,mod1e97;
const double paiacos(-1.0);// pai
mapint,int mp;
int t,n,m;
int d[30] {0,25,21,18,16};
bool st[N];
int w[N];struct code{int id,x;bool operator(const codet)const{if(xt.x) return idt.id;return xt.x;}
}e[N];void solve(){for(int i5;i20;i) d[i] 20 - i;cinn;while(n--){m 20;while(m--){int x,r; cinxr;w[x] d[r];st[x] true;}} n 30;for(int i1;in;i) e[i]{i,w[i]};sort(e1,e1n);for(int i1;in;i){auto [id,x] e[i];if(!st[id]) continue;cout id x endl;}cout endl;return ;
}
signed main ()
{ios// 不能有printf puts scanfint t1;while(t--){solve();}
}RC-u3 势均力敌 分数 25
按照题目直接暴力枚举所有情况使用全排列 二进制枚举
时间复杂度大致如下 同时不会跑满所以可以通过 // 数学公式要变形
// 莫急莫急先读题
#include bits/stdc.h
using namespace std;
#define lowbit(x) (x(-x))
#define endl \n
#define ios ios::sync_with_stdio(0); cin.tie(0),cout.tie(0);
#define LF(x) fixedsetprecision(x)// c 保留小数
#define den(a) cout #a a \n;
#define deg(a) cout #a a ;
typedef long long LL;
typedef pairint, int PII;
const int N1000010,M1010,INF0x3f3f3f3f,mod1e97;
const double paiacos(-1.0);// pai
mapint,int mp;
int t,n,m;
int a[N],p[N];void solve(){cinn;for(int i1;in;i){cina[i];p[i] i;}vectorint v;int sum 0;do{int ans 0;for(int i1;in;i) ans ans * 10 a[p[i]];v.push_back(ans);sum ans;}while(next_permutation(p1,p1n));m v.size();for(int i0;i(1m);i){if(__builtin_popcount(i)!m/2) continue;int now 0;vectorint ans;for(int j0;jm;j){if(ij1){ans.push_back(v[j]);now v[j]; }}if(nowsum/2){for(autov:ans) cout v endl;cout endl;return ;}}return ;
}
signed main ()
{ios// 不能有printf puts scanfint t1;while(t--){solve();}
}RC-u4 City 不 City 分数 30
典型的分层图一个城市有多个状态跑一遍djikstra即可注意本题是计算途经城市的hot值所以初始状态是 d[s][0] 0在可以抵达t的时候来判断即可
// 数学公式要变形
// 莫急莫急先读题
#include bits/stdc.h
using namespace std;
#define lowbit(x) (x(-x))
#define endl \n
#define ios ios::sync_with_stdio(0); cin.tie(0),cout.tie(0);
#define LF(x) fixedsetprecision(x)// c 保留小数
#define den(a) cout #a a \n;
#define deg(a) cout #a a ;
typedef long long LL;
typedef pairint, int PII;
typedef arrayint,3 ar3;
const int N1000010,M1010,INF0x3f3f3f3f,mod1e97;
const double paiacos(-1.0);// pai
mapint,int mp;
int n,m,s,t;
int h[M];
vectorPII g[M];
int d[M][110];void solve(){cinnmst;for(int i1;in;i) cinh[i];while(m--){int a,b,c; cinabc;g[a].push_back({b,c});g[b].push_back({a,c});}int ans 2e9,pos -1;auto dijkstra [](){memset(d,0x3f,sizeof d);priority_queuear3,vectorar3,greaterar3 q;d[s][0] 0, q.push({0,s,0});while(!q.empty()){auto [cost,u,hot] q.top(); q.pop();for(auto[v,w]:g[u]){int ne max(hot,h[v]);if(vt){if(costwans){ans cost w;pos hot;}else if(costwans and hotpos){pos hot;}}if(d[v][ne]costw){d[v][ne] cost w;q.push({costw,v,ne});}}}};dijkstra();if(pos-1) cout Impossible endl;else cout ans pos endl;return ;
}
signed main ()
{ios// 不能有printf puts scanfint t1;while(t--){solve();}
}RC-u5 贪心消消乐 分数 30
贪心模拟每次都暴力的找到可以选取的最大矩阵即可然后模拟下降,没有找到正解这里贴一下别人的x*(n^4)比较暴力的做法赛时通过了
#include bits/stdc.husing namespace std;
using i64 long long;constexpr int inf 5E6;void solve() {int n;cin n;vectorvectorint g(n, vectorint(n, 0));for (int i 0; i n; i) {for (int j 0; j n; j) {cin g[i][j];if (g[i][j] 0) {g[i][j] -inf;}}}vectorvectori64 sum(n 1, vectori64(n 1, 0));for (int i 0; i n; i) {for (int j 0; j n; j) {sum[i 1][j 1] sum[i 1][j] sum[i][j 1] - sum[i][j] g[i][j];}}i64 tot 0;while (1) {i64 hi 0;int a, b, c, d;for (int x1 0; x1 n; x1) {for (int y1 0; y1 n; y1) {for (int x2 x1; x2 n; x2) {for (int y2 y1; y2 n; y2) {if (g[y2][x2] -inf) {break;}i64 cur sum[y2 1][x2 1] - sum[y2 1][x1] - sum[y1][x2 1] sum[y1][x1];if (cur hi) {hi cur;a x1;b y1;c x2;d y2;}if (cur 0) {break;}}}}}if (hi 0) {break;}tot hi;cout ( a 1 , b 1 ) ( c 1 , d 1 ) hi \n;int o d - b 1;for (int x a; x c; x) {for (int y d; y 0; y--) {if (y o) {g[y][x] g[y - o][x];} else {g[y][x] -inf;}}}for (int i 0; i n; i) {fill(sum[i].begin(), sum[i].end(), 0);}for (int i 0; i n; i) {for (int j 0; j n; j) {sum[i 1][j 1] sum[i 1][j] sum[i][j 1] - sum[i][j] g[i][j];}}}cout tot \n;
}int main() {ios::sync_with_stdio(false);cin.tie(nullptr);int T 1;
// cin T;while (T--) {solve();}return 0;
}