Codeforces Round #401 (Div. 2)【A,B,C,D】
最近状态极差。。水题不想写,难题咬不动。。哎,CF的题那么简单,还搞崩了= =、真是巨菜无比。
题意:略。
思路:
构造出3!次变换,然后输出就好。
Code:
- #include <bits/stdc++.h>
- using namespace std;
- int a[6][4]={{1,2,3},{2,1,3},{2,3,1},{3,2,1},{3,1,2},{1,3,2}};
- int main()
- {
- int n,x;
- scanf("%d",&n);
- scanf("%d",&x);
- n%=6;
- int ans=a[n][x];
- ans--;
- printf("%d\n",ans);
- return 0;
- }
题意:
比较一下,小的数字的那个人要打一下。求第二串的最少,第一串的最多。
思路:(弱弱觉得有点意思)
两个数组,先排下序.
(1)我要少一些,我从大的去匹配对方,而且先与对方大的去匹配最优,如果不行,最小的来匹配。
(2)我要多一些,那么我小的尽可能去贴小的,同理不行的话,我拿最大的过去
Code:
- #include <bits/stdc++.h>
- using namespace std;
- typedef long long LL;
- char s1[1010],s2[1010];
- int s[1010];
- int m[1010];
- int n;
- void solve1()
- {
- int k1=0,k2=0;
- int t1=n-1,t2=n-1;
- int ans1=0;
- while(k1<=t1&&k2<=t2)
- {
- if(m[t2]>=s[t1])
- {
- t1--;
- t2--;
- }
- else
- {
- t1--;
- k2++;
- ans1++;
- }
- }
- printf("%d\n",ans1);
- }
- void solve2()
- {
- int k1=0,k2=0;
- int t1=n-1,t2=n-1;
- int ans2=0;
- while(k1<=t1&&k2<=t2) //小的贴小的,不行的话我最大的贴小的。
- {
- if(s[k1]<m[k2])
- {
- k1++;
- k2++;
- ans2++;
- }
- else
- {
- t1--;
- k2++;
- }
- }
- printf("%d\n",ans2);
- }
- int main()
- {
- scanf("%d",&n);
- scanf("%s%s",s1,s2);
- for(int i=0;i<n;i++)
- s[i]=s1[i]-'0';
- for(int i=0;i<n;i++)
- m[i]=s2[i]-'0';
- sort(s,s+n);
- sort(m,m+n);
- solve1();
- solve2();
- return 0;
- }
- /*
- 4
- 1234
- 2345
- */
就是直接搞就好了,对于每列可以尺取,也可以拿个临时变量作为当前最远位置,这里是预处理出一个数组存每个位置的最远距离。
Code
- #include <bits/stdc++.h>
- using namespace std;
- typedef long long LL;
- const int N=1e6+10;
- vector<int>xs[100010];
- int num[100010];
- int n,m;
- void solve()
- {
- for(int i=0;i<m;i++)
- {
- int tmp=-1;
- int L;
- for(int j=0;j<xs[i].size();j++)
- {
- int a=xs[i][j];
- if(tmp==-1)
- L=j+1;
- else if(tmp>a)
- {
- num[L]=max(num[L],j);
- L=j+1;
- }
- tmp=a;
- }
- num[L]=max(num[L],n);
- }
- int tmp=-1;
- for(int i=1;i<=n;i++)
- {
- num[i]=max(num[i],tmp);
- tmp=max(num[i],tmp);
- }
- }
- int main()
- {
- int x,y;
- scanf("%d%d",&n,&m);
- for(int i=0;i<n;i++)
- for(int j=0;j<m;j++)
- {
- scanf("%d",&x);
- xs[j].push_back(x);
- }
- solve();
- int Q;
- scanf("%d",&Q);
- while(Q--)
- {
- scanf("%d%d",&x,&y);
- if(num[x]>=y)
- puts("Yes");
- else
- puts("No");
- }
- return 0;
- }
大水题。。
Code:
- #include <bits/stdc++.h>
- using namespace std;
- typedef long long LL;
- vector<char>xs[500010];
- int n;
- int len[500010];
- char ss[500010];
- int main()
- {
- scanf("%d",&n);
- for(int i=0;i<n;i++)
- {
- scanf("%s",ss);
- int yy=strlen(ss);
- for(int j=0;j<yy;j++)
- xs[i].push_back(ss[j]);
- }
- int t1,t2;
- len[n-1]=xs[n-1].size();
- for(int i=n-2;i>=0;i--)
- {
- t1=0;t2=0;
- bool flag=true;
- if(len[i+1]==1)
- {
- len[i]=1;
- continue;
- }
- while(t1<len[i+1]&&t2<xs[i].size())
- {
- if(xs[i+1][t1]==xs[i][t2])
- {
- t1++;
- t2++;
- }
- else if(xs[i+1][t1]>xs[i][t2])
- {
- len[i]=xs[i].size();
- flag=false;
- break;
- }
- else
- break;
- }
- if(flag)
- len[i]=t2;
- }
- for(int i=0;i<n;i++)
- {
- for(int j=0;j<len[i];j++)
- cout<<xs[i][j];
- puts("");
- }
- return 0;
- }
- /*
- 3
- #sima
- #simb
- #sima
- */
Codeforces Round #401 (Div. 2)【A,B,C,D】的更多相关文章
- Codeforces Round #508 (Div. 2)【A,B,C,D】【实验室日常周赛训练】
#include<bits/stdc++.h> using namespace std; #define inf 0x3f3f3f3f3f3f #define int long long ...
- Codeforces Round #343 (Div. 2)【A,B水题】
A. Far Relative's Birthday Cake 题意: 求在同一行.同一列的巧克力对数. 分析: 水题~样例搞明白再下笔! 代码: #include<iostream> u ...
- Codeforces Round #553 (Div. 2) 【C. Problem for Nazar】
题目大意: 一开始第一行是 1,第二行是2 4 ,第三行是3 5 7 9 ,类似这样下去,每一行的个数是上一行的个数,然后对这些点从第一个进行编号,问你从[l,r]区间数的和. 思路:分别求出奇数和偶 ...
- Codeforces Round #646 (Div. 2)【B. Subsequence Hate题解】
具体思路已经在代码注释中给出,这里不再赘述. #include<iostream> #include<algorithm> using namespace std; int t ...
- Codeforces Round #401 (Div. 2) 离翻身就差2分钟
Codeforces Round #401 (Div. 2) 很happy,现场榜很happy,完全将昨晚的不悦忘了.终判我校一片惨白,小董同学怒怼D\E,离AK就差一个C了,于是我AC了C题还剩35 ...
- Codeforces Round #443 (Div. 2) 【A、B、C、D】
Codeforces Round #443 (Div. 2) codeforces 879 A. Borya's Diagnosis[水题] #include<cstdio> #inclu ...
- Codeforces Round #436 (Div. 2)【A、B、C、D、E】
Codeforces Round #436 (Div. 2) 敲出一身冷汗...感觉自己宛如智障:( codeforces 864 A. Fair Game[水] 题意:已知n为偶数,有n张卡片,每张 ...
- Codeforces Round #435 (Div. 2)【A、B、C、D】
//在我对着D题发呆的时候,柴神秒掉了D题并说:这个D感觉比C题简单呀!,,我:[哭.jpg](逃 Codeforces Round #435 (Div. 2) codeforces 862 A. M ...
- Codeforces Round #434 (Div. 2)【A、B、C、D】
Codeforces Round #434 (Div. 2) codeforces 858A. k-rounding[水] 题意:已知n和k,求n的最小倍数x,要求x后缀至少有k个0. 题解:答案就是 ...
随机推荐
- oops信息的分析【转】
本文转载自:https://blog.csdn.net/zhangchiytu/article/details/8303172 oops是英语口语"糟糕"的意思,当LINUX 内核 ...
- Mac OS访问Windows共享文件夹
原文地址:http://blog.csdn.net/jinhill/article/details/7246922 最近开始研究Mac OS,遇到的第一个问题就是如何在Mac OS中访问Windows ...
- 加州小学grade1,学习计划
Visual vocabulary Grammar Spelling Maths Chapter 1 Patterns and Number SenseChapter 2Understanding A ...
- Sqooop- 使用Sqoop进行数据的导入导出
Sqoop是Apache旗下的一个开源框架,专门用来做数据的导入和导出. 官网:https://sqoop.apache.org/ Sqoop的安装非常简单,只需要把下载下来的tar包解压设置两个环境 ...
- c++迷宫小游戏
c++迷宫小游戏 一.总结 一句话总结: 显示:根据map数组输出图像 走动:修改map数组的值,每走一步重新刷新一下图像就好 1.如果走函数用z(),出现输入s会向下走多步的情况,原因是什么? 向下 ...
- resEdit
resEdit:一个图形界面编辑工具,它不但可以用来编写程序所图形界面(如修改图标.菜单.鼠标.版本信息等),还支持了对exe.dll等执行文件内的资源(图标.菜单.鼠标指针.位图.版本信息)等进行修 ...
- Sysctl命令及linux内核参数调整
一.Sysctl命令用来配置与显示在/proc/sys目录中的内核参数.如果想使参数长期保存,可以通过编辑/etc/sysctl.conf文件来实现. 命令格式: sysctl [-n ...
- osx快捷键表示图
- BZOJ4278 [ONTAK2015]Tasowanie[后缀数组+贪心]
题目 求两数组归并后的数组最小字典序排列. 嘛,可能本人在贪心这块还是太弱了(或者说什么都弱),如果不知道是字符串题估计也想不起来用sa. 显然看得出归并时字典序小的那个数组先往里面加,这就是要比较两 ...
- ACM学习历程—ZOJ 3861 Valid Pattern Lock(dfs)
Description Pattern lock security is generally used in Android handsets instead of a password. The p ...