这一场真的是血崩,a,b都被hack,还好结束前重交都过了

A:题意:找出得到k个不同的字符,所要更改的最小字符数

题解:首先如果k>字符串长度,直接impossible,然后直接记录一下不重复的有多少个,如果不重复的个数比k小,输出k-不重复的个数,否则输出0(就是这里被hack)

#include<bits/stdc++.h>
#define C 0.5772156649
#define pi acos(-1.0)
#define ll long long
#define mod 1000000007
#define ls l,m,rt<<1
#define rs m+1,r,rt<<1|1
#pragma comment(linker, "/STACK:1024000000,1024000000")using namespace std;const double g=10.0,eps=1e-7;
const int N=300000+10,maxn=100+10,inf=0x3f3f3f3f3f;bool vis[30];
int main()
{ios::sync_with_stdio(false);cin.tie(0);int n;string s;cin>>s>>n;int ans=0;for(int i=0;i<s.size();i++){if(!vis[s[i]-'a']){vis[s[i]-'a']=1;ans++;}}if(n>s.size())cout<<"impossible"<<endl;else cout<<max(0,n-ans)<<endl;return 0;
}
/****************************************/

A

B:题意:给一个n*m的数字(0,1)矩阵,求能组成团的有多少(每一个团里元素值相同,而且在同一行或同一列)

题解:对每一行和每一列计算1的个数(k),这样每一行(列)里1构成的团有(1<<k)-1个(可以分1,2,,,k)来列举出,0构成的有(1<<(m(列就是n)-k))-1

但是最大到了(1<<50)会爆longlong(就是这里被hack了)(后来实在脑残了直接改写成python交上去过了,之后发现原来把1改成1ll就能过了)

n,m = input().strip().split()
n = int(n)
m = int(m)
a = [([0]*50) for i in range(50)]
for i in range(n):p=input()a[i] = p.split(' ')
ans = 0
for i in range(n):k = 0for j in range(m):if a[i][j] == '1':k = k+1ans=ans+2**k-1+2**(m-k)-1
for i in range(m):k = 0for j in range(n):if a[j][i] == '1':k = k+1ans=ans+2**k-1+2**(n-k)-1
print(ans-n*m)

B---python

#include<bits/stdc++.h>
#define C 0.5772156649
#define pi acos(-1.0)
#define ll long long
#define mod 1000000007
#define ls l,m,rt<<1
#define rs m+1,r,rt<<1|1
#pragma comment(linker, "/STACK:1024000000,1024000000")using namespace std;const double g=10.0,eps=1e-7;
const int N=50+10,maxn=1000000+10,inf=0x3f3f3f;int a[N][N];
int main()
{ios::sync_with_stdio(false);cin.tie(0);ll n,m;cin>>n>>m;for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)cin>>a[i][j];ll ans=-n*m;for(int i=1;i<=n;i++){ll k=0;for(int j=1;j<=m;j++)if(a[i][j]==1)k++;ans+=(1ll<<k)-1;ans+=(1ll<<(m-k))-1;}for(int i=1;i<=m;i++){ll k=0;for(int j=1;j<=n;j++)if(a[j][i]==1)k++;ans+=(1ll<<k)-1;ans+=(1ll<<(n-k))-1;}cout<<ans<<endl;return 0;
}
/****************************************/

B---c++

C:题意:给定一个数列,要求对其中某些数排序,排完序之后放在对应的位置,然后每个数最多排一次,要求排的次数最多,而且排完之后整个数列递增
题解:先对其排序,按照下标的顺序去找到最小的那个团,比如3 1 2,3应该放在2的位置,那么就再取2,2应该放在1的位置那么取1,则最小团就是1,2,3

#include<bits/stdc++.h>
#define C 0.5772156649
#define pi acos(-1.0)
#define ll long long
#define mod 1000000007
#define ls l,m,rt<<1
#define rs m+1,r,rt<<1|1
#pragma comment(linker, "/STACK:1024000000,1024000000")using namespace std;const double g=10.0,eps=1e-7;
const int N=100000+10,maxn=100+10,inf=0x3f3f3f3f3f;int a[N],b[N];
bool vis[N];
map<int,int>m;
vector<int>v[N];
int main()
{ios::sync_with_stdio(false);cin.tie(0);int n;cin>>n;for(int i=1;i<=n;i++){cin>>b[i];a[i]=b[i];}sort(b+1,b+1+n);for(int i=1;i<=n;i++)m[b[i]]=i;int cnt=0;for(int i=1;i<=n;i++){if(!vis[i]){++cnt;int p=i;while(m[a[p]]!=i){vis[m[a[p]]]=1;v[cnt].push_back(m[a[p]]);p=m[a[p]];}v[cnt].push_back(m[a[p]]);}}cout<<cnt<<endl;for(int i=1;i<=cnt;i++){cout<<v[i].size();for(int j=0;j<v[i].size();j++)cout<<" "<<v[i][j];cout<<endl;}return 0;
}
/****************************************/

D:题意:交互题,给定一个链表,每次查询时会给你当前结点的价值和下一个节点的坐标,询问的是坐标,链表价值递增,要求找到最小的大于等于x的那个价值,且询问次数不超过2000次

题解:先生成一个随机数组,然后访问前1600个,找到最大的小于等于x的那个坐标,然后沿着那个坐标走,就能得到结果了(刚开始直接访问了不随机的前1500个导致wa了,然后随机数种子忘了写又wa了)srand(time(NULL));

#include<bits/stdc++.h>
#define C 0.5772156649
#define pi acos(-1.0)
#define ll long long
#define mod 1000000007
#define ls l,m,rt<<1
#define rs m+1,r,rt<<1|1
#pragma comment(linker, "/STACK:1024000000,1024000000")using namespace std;const double g=10.0,eps=1e-7;
const int N=50000+10,maxn=100+10,inf=0x3f3f3f3f3f;int main()
{srand(time(NULL));ios::sync_with_stdio(false);cin.tie(0);int st,n,x;cin>>n>>st>>x;vector<int>v;for(int i=0;i<n;i++)v.push_back(i+1);random_shuffle(v.begin(),v.end());int ans=-1,p=st;for(int i=0; i<min(n,1600); i++){cout<<"? "<<v[i]<<endl;cout.flush();int v,id;cin>>v>>id;if(v>ans&&v<=x){p=id;ans=v;}}while(p!=-1&&ans<x){cout<<"? "<<p<<endl;cin>>ans>>p;}if(ans<x)ans=-1;cout<<"! "<<ans<<endl;cout.flush();return 0;
}
/****************************************/

转载于:https://www.cnblogs.com/acjiumeng/p/7426861.html

AIM Tech Round 4 (Div. 2)ABCD相关推荐

  1. AIM Tech Round 3 (Div. 2) A B C D

    虽然打的时候是深夜但是状态比较好 但还是犯了好多错误..加分场愣是打成了降分场 ABC都比较水 一会敲完去看D 很快的就想出了求0和1个数的办法 然后一直wa在第四组..快结束的时候B因为低级错误被h ...

  2. AIM Tech Round 4 (Div. 2)

    A题 分析:暴力 1 #include "iostream" 2 #include "cstdio" 3 #include "cstring" ...

  3. AIM Tech Round (Div. 1) C. Electric Charges 二分

    C. Electric Charges 题目连接: http://www.codeforces.com/contest/623/problem/C Description Programmer Sas ...

  4. CF AIM Tech Round 5 (rated, Div. 1 + Div. 2) B. Unnatural Conditions 思维 ʕ •ᴥ•ʔ

    Let s(x)s(x) be sum of digits in decimal representation of positive integer xx. Given two integers n ...

  5. AIM Tech Round 5C. Rectangles 思维

    C. Rectangles time limit per test 2 seconds memory limit per test 256 megabytes input standard input ...

  6. Codeforces Round #433(Div. 2) D. Jury Meeting(贪心)

    题目链接:Codeforces Round #433(Div. 2) D. Jury Meeting 题意: 有n个城市,每个城市有一个人,现在要让这些人来0号城市在一起k天,然后回去. 现在有m个日 ...

  7. Codeforces Round #506 (Div. 3)

    Codeforces Round #506 (Div. 3) 实习期间事不多,对div3 面向题解和数据编程了一波 A. Many Equal Substrings 题目链接 A题就是找后缀和前缀重合 ...

  8. Codeforces Round #563 (Div. 2)/CF1174

    Codeforces Round #563 (Div. 2)/CF1174 CF1174A Ehab Fails to Be Thanos 其实就是要\(\sum\limits_{i=1}^n a_i ...

  9. 构造 Codeforces Round #302 (Div. 2) B Sea and Islands

    题目传送门 1 /* 2 题意:在n^n的海洋里是否有k块陆地 3 构造算法:按奇偶性来判断,k小于等于所有点数的一半,交叉输出L/S 4 输出完k个L后,之后全部输出S:) 5 5 10 的例子可以 ...

最新文章

  1. PyTorch 笔记(16)— torch.nn.Sequential、torch.nn.Linear、torch.nn.RelU
  2. nginx日志问题解决方法记录
  3. window7调用计算机,Windows7自带计算器的使用
  4. linux 列出目录结构6,Linux系统目录结构及文件管理命令
  5. 判斷字符串中是否含有中文字符
  6. 将EXCEL中的列拼接成SQL insert插入语句
  7. Vue入门教程:node安装vue命令行工具及启动项目
  8. java报告(一)编程打印一个三角形的乘法口诀表
  9. java中用iterator去检查最大值_Java中的Iterator vs forEach
  10. JavaEE课程目标、个人目标、互联网应用和企业级应用的区别
  11. HTML 基本知识点(草稿)
  12. HQL中左连接,右连接、内连接
  13. 微信开发者工具不显示二维码问题
  14. 基于密集卷积神经网络的多类植物病害检测与分类
  15. 本特利振动探头177230-01-01-CN
  16. 蓝桥杯嵌入式备赛手册
  17. 计算机网络线路故障及排查方法,计算机网络常见故障排查
  18. 电脑tf卡检测不到_为什么电脑不识别TF卡?
  19. CATIA二次开发—视图及视点
  20. 泡泡龙游戏开发系列教程(六)

热门文章

  1. SpringBoot退出登录,使session失效
  2. 在 Windows 上部署 gitblit
  3. stm32串口学习(二)
  4. Head First JSP---随笔十(过滤器的威力)
  5. ✅书单推荐の自我管理篇✅
  6. Spring TX源码分析
  7. 一致性哈希算法在分布式缓存中的应用
  8. volatile关键字及JMM模型
  9. Python超越Java语言,跃居世界编程语言第2位了!你却还在犹豫学不学Python?
  10. Android PC投屏简单尝试(录屏直播)2—硬解章(MediaCodec+RMTP)