首页 > 其他分享 >10.03总结

10.03总结

时间:2023-10-04 21:44:40浏览次数:35  
标签:总结 cnt return int st dir 10.03 dp

注:这个顺序是 T3,T2,T1,T4

我再用\(ifstreamf,ofstream\) 我就抽死自己

我再不先把所有题看一遍,我就抽死自己

顺带一提2023flag

T1

我再用\(ifstreamf,ofstream\) 我就抽死自己

给你一个序列,保证最多只有两个相同数,表示 \(2^{a_i}\),求有几种方法可以构成\(2^{max(a_i)+1}\)
先推一个公式:
\(2^x+2^x=2^x*2=x^{x+1}\)
所以考虑 \(DP\) 每次如果有与后面重复的得 \(dp[a[x] + 1] = max(dp[a[x]], dp[a[x] + 1] + 1)\)
然后如果只有两个(应为我会合并,所以可能有三个)直接合并
但是如果有三个我们还要做一次,但是要变成\(dp[a[x] + 1] = max(dp[a[x]], dp[a[x] + 1] + max(1, dp[a[x]]));\)
应为不难得出三个在一起可以有三种方法而且,有三个必定有一个是我合成出的,所以要变换公式。

code

赛时(80)

#include <bits/stdc++.h>
using namespace std;

ifstream fin("team.in");
ofstream fout("team.out");

const int Maxn = 1e5 + 5, mod = 998244353;
int n, maxi, cnt, x, sum, a[Maxn];
map<int, int> dp;

int main() {
ios::sync_with_stdio(0);
fin.tie(0), cout.tie(0);
fin >> n;
for (int i = 1; i <= n; i++) {
  fin >> a[i];
}
sort(a + 1, a + 1 + n);
sum = a[n];
cnt = 1;
if (a[n - 1] == sum) {
  cnt = 2;
}

for (x = 2; x <= n && a[x] != a[x - 1]; x++) {
}
if (x > n) {
  cout << 0;//注意看,这个cout叫小帅(应该要fout)痛失20、rank4
  return 0;
}
for (; x <= n; x++) {
  if (a[x] == a[x - 1]) {
    // cout << x << " ";
    dp[a[x] + 1] = max(dp[a[x]], dp[a[x] + 1] + 1);
    dp[a[x] + 1] %= mod;
    if (a[x + 1] != a[x]) {
      a[x]++;
      // cout << dp[a[x]] << "\n";
    } else {
      dp[a[x] + 1] = max(dp[a[x]], dp[a[x] + 1] + max(1, dp[a[x]]));
      dp[a[x] + 1] %= mod;
      // cout << dp[a[x] + 1] << "\n";
    }
  }
}
fout << dp[sum + 1];
return 0;
}

AC

#include <bits/stdc++.h>
using namespace std;

ifstream fin("team.in");
ofstream fout("team.out");

const int Maxn = 1e5 + 5, mod = 998244353;
int n, maxi, cnt, x, sum, a[Maxn];
map<int, int> dp;

int main() {
  ios::sync_with_stdio(0);
  fin.tie(0), cout.tie(0);
  fin >> n;
  for (int i = 1; i <= n; i++) {
    fin >> a[i];
  }
  sort(a + 1, a + 1 + n);
  sum = a[n];
  cnt = 1;
  if (a[n - 1] == sum) {
    cnt = 2;
  }

  for (x = 2; x <= n && a[x] != a[x - 1]; x++) {
  }
  if (x > n) {
    fout << 0;//就这一个改动哦
    return 0;
  }
  for (; x <= n; x++) {
    if (a[x] == a[x - 1]) {
      // cout << x << " ";
      dp[a[x] + 1] = max(dp[a[x]], dp[a[x] + 1] + 1);
      dp[a[x] + 1] %= mod;
      if (a[x + 1] != a[x]) {
        a[x]++;
        // cout << dp[a[x]] << "\n";
      } else {
        dp[a[x] + 1] = max(dp[a[x]], dp[a[x] + 1] + max(1, dp[a[x]]));
        dp[a[x] + 1] %= mod;
        // cout << dp[a[x] + 1] << "\n";
      }
    }
  }
  fout << dp[sum + 1];
  return 0;
  }

T2
一道模拟
按题意模拟即可

code

std(AC)

#include <bits/stdc++.h>
using namespace std;
bool v[262145][2][3][7];

int n, full;
bool die[262145];
int c[3][6], x[3][6];
int s(int st, int p, int x) { return st ^= 1 << (p * n + x); }
bool have(int st, int p, int x) { return (st >> (p * n + x)) & 1; }
int nx(int b, int dir, int p) {
b += dir ? p : -p;
if (b > 2) b -= 3;
if (b < 0) b += 3;
return b;
}
bool legal(int a, int b, int c, int d) { return a == 4 || c == 4 || a == c || b == d; }

bool srch(int st, int dir, int lp, int lx) {
if (!st) return 1;
if (die[st]) return 0;
if (v[st][dir][lp][lx]) return 0;
v[st][dir][lp][lx] = 1;
int col = c[lp][lx], num = x[lp][lx];
int p = nx(lp, dir, 1 + (num == 10)), flag = 0;
for (int i = 0; i < n; ++i)
  if (have(st, p, i)) flag = 1;
while (!flag) {
  p = nx(p, dir, 1);
  for (int i = 0; i < n; ++i)
    if (have(st, p, i)) flag = 1;
}
for (int i = 0; i < n; ++i)
  if (have(st, p, i) && legal(col, num, c[p][i], x[p][i]))
    if (srch(s(st, p, i), dir ^ (x[p][i] == 11), p, i)) return 1;
return 0;
}

char sol() {
scanf("%d", &n);
full = 1 << (3 * n);
--full;
for (int i = 1; i < (1 << n); ++i)
  if (i & (i - 1))
    for (int j = 1; j < (1 << n); ++j) die[i | (j << n)] = die[i | (j << n + n)] = die[(i << n) | j] = die[(i << n) | (j << n + n)] = die[(i << n + n) | j] = die[(i << n + n) | (j << n)] = 1;
for (int i = 0; i < 3; ++i)
  for (int j = 0; j < n; ++j) scanf("%d%d", &c[i][j], &x[i][j]);
memset(v, 0, sizeof(v));
for (int i = 0; i < 2; ++i)
  for (int j = 0; j < n; ++j)
    if (srch(s(full, 0, j), i, 0, j)) return 'Y';
return 'N';
}

int main() {
freopen("uno.in", "r", stdin);
freopen("uno.out", "w", stdout);
int t;
scanf("%d", &t);
while (t--) printf("%c\n", sol());
return 0;
}

T3

我再不先把所有题看一遍,我就抽死自己

给定四个 \(a_i\) 三个 \(b_i\) 求 \(min(a_i)+min(b_i)\)
简单题,求出最小,然后使用splay写出A+Bproblem

code

赛时(AC)

#include <bits/stdc++.h>
using namespace std;

ifstream fin("lunch.in");
ofstream fout("lunch.out");

int a, cnt = 1e9, mini = 1e9;

int main() {
ios::sync_with_stdio(0);
fin.tie(0), cout.tie(0);
for (int i = 1; i <= 4; i++) {
  fin >> a;
  mini = min(a, mini);
}
for (int i = 1; i <= 3; i++) {
  fin >> a;
  cnt = min(a, cnt);
}
fout << cnt + mini;
return 0;
}

什么 T4 哪去了?

啊?今天有 T4 吗?啊哈哈哈哈哈!

(作者已疯)

标签:总结,cnt,return,int,st,dir,10.03,dp
From: https://www.cnblogs.com/mouseboy/p/17742797.html

相关文章

  • C++模板template应用总结
    引言模板(Template)指C++程序设计设计语言中采用类型作为参数的程序设计,支持通用程序设计。C++的标准库提供许多有用的函数大多结合了模板的观念,如STL以及IOStream。函数模板在c++入门中,很多人会接触swap(int&,int&)这样的函数类似代码如下:voidswap(int&a,int&b){......
  • uniapp项目实践总结(二十七)苹果应用商店上架教程
    导语:之前介绍了如何打包一个苹果安装包文件,如果想要上架苹果ios应用商店,那么就来这里学习一下方法吧。目录准备材料上架步骤审核事项准备材料基本信息构建版本:需要一个ipa格式安装包;logo:你应用的logo图标;应用名称:名称经过审核后才会显示在AppStore中;应用......
  • ISIS 协议常用基本配置总结
    转载请注明出处:1.创建IS-IS进程,进入IS-IS进程[Huawei]isis[process-id]参数process-id用来指定一个IS-IS进程。如果不指定参数process-id,则系统默认的进程为1。2.配置网络实体名称(NET)[Huawei-isis-1]network-entitynet通常情况下,一个IS-IS进程下配置一个N......
  • 2023-2024-1 20231314许城铭 《计算机基础与程序设计》第一周学习总结
    2023-2024-120231314许城铭《计算机基础与程序设计》第一周学习总结作业信息这个作业属于哪个课程(2022-2023-1-计算机基础与程序设计)这个作业要求在哪里(2022-2023-1计算机基础与程序设计第一周作业)这个作业的目标<简单浏览《计算机科学概论》,并尝试提出问题以......
  • 2023-2024-1 20231319《计算机基础与程序设计》第1周学习总结
    《计算机基础与程序设计》第1周学习总结说明班级:2023-2024-1-计算机基础与程序设计作业要求:2023-2024-1《计算机基础与程序设计》教学进程作业目标:快速浏览一遍教材,并提出问题问题第一章1.信息隐藏是如何通过抽象实现的?2.云计算是如何脱离硬件而实现的,真的能完全脱离硬件......
  • PTA题目集1/2总结
    PTA题目集1PTA的第一个题目集较为简单,所以不做过多描述:比较坑的是题目没有说明,但要都是float类型,如果在计算中用double类型,那么最后输出时要强制转换成float类型。7-2长度质量计量单位换算7-4NCHU_房产税费计算以上两题都是这样,不去百度我都不知道要这样搞( PTA题目集2......
  • 2023-2024-1学年 学号20231317 《计算机基础与程序设计》第二周学习总结
    学期(如2023-2024-1)学号(如:20231317)《计算机基础与程序设计》第二周学习总结作业信息这个作业属于哪个课程<班级的链接>(如2023-2024-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(如2023-2024-1计算机基础与程序设计第二周作业)这个作业的目标<分别......
  • 第四周助教总结
    随着军训的结束,大一的同学们开始投入到紧张充实的学习生活中,助教工作也逐步走上正轨。在帮助学弟学妹解决问题的同时自己也有了许多收获,这一周的助教工作对自己来说很有意义,值得回顾反思总结。一、作业问题1.作业超时问题由于老师截止日期多设置了一个月的时间,导致部分同学没有......
  • Java语言基础知识全总结
    一.Java的优点1.      跨平台性。一次编译,到处运行。Java编译器会将Java代码编译成能在JVM上直接运行的字节码文件,C++会将源代码编译成可执行的二进制代码文件,所以C++执行速度快2.      纯面向对象。Java所有的代码都必须在类中书写。C++兼具面向对象和面向过程的特......
  • 每日总结2023/10/03(c#安装教程)
     C#,入门教程(01)——VisualStudio2022免费安装的详细图文与动画教程_visualstudio2022安装c#教程-CSDN博客......