BestCoder Round #81 (div.2)
HDU:5670~5764
A题: 是一个3进制计数;
#include <bits/stdc++.h> using namespace std; int a[]; int calc(long long n) {
int i=;
while(n) {
a[i++] = n%;
n/=;
}
return i;
} int main()
{
int t;
cin>>t;
while(t--) {
memset(a,,sizeof());
int m; //长度
long long n;
cin>>m>>n;
int k = calc(n);
for(int i=;i<m-k;i++) {
putchar('R');
}
for(int i=min(k-,m-);i>=;i--) {
if(a[i]==)
putchar('R');
else if(a[i]==)
putchar('G');
else putchar('B');
}
puts("");
}
return ;
}
B题:矩阵操作,可以线段树,有更好的办法,就是现在的某一行是原来的哪一行记录下来;
#include <bits/stdc++.h> using namespace std; const int maxn = ;
int maps[maxn][maxn]; int r[maxn]; //当前的第i 行,是原来的r[i]
int c[maxn];
int addr[maxn]; //当前的第i 行,上面加了addr[i]
int addc[maxn]; int main()
{
int t;
scanf("%d",&t);
while(t--) {
memset(addr,,sizeof(addr));
memset(addc,,sizeof(addc)); int n,m;
int q;
scanf("%d%d%d",&n,&m,&q);
for(int i=;i<n;i++)
for(int j=;j<m;j++)
scanf("%d",&maps[i][j]); for(int i=;i<n;i++)
r[i] = i;
for(int i=;i<m;i++)
c[i] = i; int op,x,y;
while(q--) {
scanf("%d%d%d",&op,&x,&y);
if(op==)
{
x--;y--;
swap(r[x],r[y]);
swap(addr[x],addr[y]);
}
if(op==) {
x--;y--;
swap(c[x],c[y]);
swap(addc[x],addc[y]);
}
if(op==) {
x--;
addr[x]+=y;
}
if(op==) {
x--;
addc[x]+=y;
}
} for(int i=;i<n;i++) {
for(int j=;j<m;j++) {
if(j==m-)
printf("%d",maps[r[i]][c[j]]+addr[i]+addc[j]);
else
printf("%d ",maps[r[i]][c[j]]+addr[i]+addc[j]);
}
puts("");
}
}
return ;
}
C题:一个字符串,仅有小写字母,求有多少个子串,至少K个不同的字母;
尺取,最好是hash,map,set可能会超时
#include <bits/stdc++.h> using namespace std; const int maxn = +; char str[maxn];
int vis[]; int main()
{
int t;
cin>>t;
while(t--) {
int k;
scanf("%s%d",str+,&k);
int n = strlen(str+);
memset(vis,,sizeof(vis));
int r=;
int cnt=;
long long ans = ;
for(int l=;l<=n;l++) {
while(r<n&&cnt<k) {
++r;
if(++vis[str[r]]==)
cnt++;
}
if(cnt>=k)
ans +=n-r+;
if(--vis[str[l]]==)
--cnt;
}
cout<<ans<<endl;
}
return ;
}
D题: n秒后,回到原点,有多少不同的路径;
枚举向右走了几步;
公式出来了,大组合数用到乘法逆元,求卡特兰数,在CSUFTOJ中有一个出栈序列的问题,i 步有多少种出栈方式;(代码还没写)
BestCoder Round #81 (div.2)的更多相关文章
- BestCoder Round #81 (div.2) 1004 String(动态规划)
题目链接:BestCoder Round #81 (div.2) 1003 String 题意 中文题,上有链接.就不贴了. 思路 枚举起点i,计算能够达到k个不同字母的最小下标j,则此时有子串len ...
- BestCoder Round #81 (div.2) 1003 String
题目地址:http://bestcoder.hdu.edu.cn/contests/contest_showproblem.php?cid=691&pid=1003题意:找出一个字符串满足至少 ...
- BestCoder Round #81 (div.2)C String
总体思路好想,就是在找K个不同字母的时候,卡时间. 看了大神代码,发现goto的!!!!998ms #include<cstdio> #include<cstring> #in ...
- BestCoder Round #81 (div.2) B Matrix
B题...水题,记录当前行是由原矩阵哪行变来的. #include<cstdio> #include<cstring> #include<cstdlib> #inc ...
- BestCoder Round #81 (div.1)A
水题...就是n的三进制后m位 #include<cstdio> #include<cstring> #include<cstdlib> #include<i ...
- BestCoder Round #81 (div.2)1001
Machine Accepts: 580 Submissions: 1890 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65 ...
- hdoj5671 BestCoder Round #81 (div.2)
对于交换行.交换列的操作,分别记录当前状态下每一行.每一列是原始数组的哪一行.哪一列即可. 对每一行.每一列加一个数的操作,也可以两个数组分别记录.注意当交换行.列的同时,也要交换增量数组. 输出时通 ...
- BestCoder Round #69 (div.2) Baby Ming and Weight lifting(hdu 5610)
Baby Ming and Weight lifting Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K ( ...
- BestCoder Round #68 (div.2) tree(hdu 5606)
tree Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submis ...
随机推荐
- 让android系统中任意一个view变成进度条
1.效果 2.进度条背景drawable文件 结束后可以恢复原背景. <?xml version="1.0" encoding="utf-8"?> ...
- lnmp 一键搭建脚本
转载注明出处!!!!!!!!! 不足之处望多多指教. 不明之处站内私. #!/bin/bash #################################################### ...
- Android 中判断网络状态
首先在AndroidManifest.xml添加权限 <uses-permission android:name="android.permission.ACCESS_NETWORK_ ...
- 推荐文章unity框架与工具
https://www.indienova.com/u/kuaile/blogread/1343
- linux_api之信号
本片索引: 1.引言 2.信号 3.程序启动 4.signal函数 5.系统调用的中断和系统调用的重启(了解) 6.可再入与不可再入函数(了解) 7.kill函数和raise函数 8.alarm函数和 ...
- Java动态性 字节码操作
Java动态性的两种常见方式:-字节码操作 - 反射;字节码操作比反射开销小,性能高,JAVAasist性能高于反射,低于ASM 运行时操作字节码可是实现 : 动态生成新的类:动态的改变某个类的结构 ...
- 什么是图像 -- opencv基础
opencv基础篇--到底什么是图像 什么是图像?英语中有两个单词来形容图像,一个是picture,一个是image.这两者虽然是形容同一个东西,但却又有着区别.picture代表实而有物的真实图像: ...
- 模糊查询-动态参数,防SQL注入
WHERE("title like '%'+#{keyWord}+'%'"); -MS SQL WHERE("title like concat('%',#{keyWor ...
- TypeScript 入门笔记
1.原始数据类型 JavaScript 的类型分为两种:原始数据类型和对象数据类型.原始数据类型包括布尔值.数值.字符串.null.undefined 以及 ES6 中的 Symbol. 前五种数据类 ...
- 2018.10.16 NOIP模拟赛解题报告
心路历程 预计得分:\(100 + 100 + 20 = 220\) 实际得分:\(100 + 100 + 30 = 230\) 辣鸡模拟赛.. T1T2都是一眼题,T3考验卡常数还只有一档暴力分. ...