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)的更多相关文章

  1. BestCoder Round #81 (div.2) 1004 String(动态规划)

    题目链接:BestCoder Round #81 (div.2) 1003 String 题意 中文题,上有链接.就不贴了. 思路 枚举起点i,计算能够达到k个不同字母的最小下标j,则此时有子串len ...

  2. BestCoder Round #81 (div.2) 1003 String

    题目地址:http://bestcoder.hdu.edu.cn/contests/contest_showproblem.php?cid=691&pid=1003题意:找出一个字符串满足至少 ...

  3. BestCoder Round #81 (div.2)C String

    总体思路好想,就是在找K个不同字母的时候,卡时间. 看了大神代码,发现goto的!!!!998ms #include<cstdio> #include<cstring> #in ...

  4. BestCoder Round #81 (div.2) B Matrix

    B题...水题,记录当前行是由原矩阵哪行变来的. #include<cstdio> #include<cstring> #include<cstdlib> #inc ...

  5. BestCoder Round #81 (div.1)A

    水题...就是n的三进制后m位 #include<cstdio> #include<cstring> #include<cstdlib> #include<i ...

  6. BestCoder Round #81 (div.2)1001

    Machine Accepts: 580 Submissions: 1890 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65 ...

  7. hdoj5671 BestCoder Round #81 (div.2)

    对于交换行.交换列的操作,分别记录当前状态下每一行.每一列是原始数组的哪一行.哪一列即可. 对每一行.每一列加一个数的操作,也可以两个数组分别记录.注意当交换行.列的同时,也要交换增量数组. 输出时通 ...

  8. 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 ( ...

  9. 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 ...

随机推荐

  1. $bzoj1052-HAOI2007$ 覆盖问题 抽屉原理 二分答案

    题面描述 某人在山上种了\(N\leq 2*10^4​\)棵小树苗.冬天来了,温度急速下降,小树苗脆弱得不堪一击,于是树主人想用一些塑料薄膜把这些小树遮盖起来,经过一番长久的思考,他决定用\(3​\) ...

  2. python移动多个子文件中的文件到一个文件夹

    import os import os.path import shutil def listDir(dirTemp): if None == dirTemp: return global nameL ...

  3. HDU 5596 ——GTW likes gt——————【想法题】

    GTW likes gt Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)To ...

  4. 【linux】dpkg 命令使用说明

    dpkg是一个debian包管理工具.能够对包进行安装.卸载.获取信息等操作.用法:    安装(解包并配置):       dpkg -i package_file       dpkg --ins ...

  5. 一、IP地址

    IP地址 1)网络地址 IP地址由网络号(包括子网号)和主机号组成,网络地址的主机号为全0,网络地址代表着整个网络. 2)广播地址 广播地址通常称为直接广播地址,是为了区分受限广播地址. 广播地址与网 ...

  6. MyBatis 中 sqlmapconfig核心标签typeAliases配置说明

    标签说明 在 MyBatis 的 sql 映射配置文件中,需要使用 paramterType.resultType 来设置 sql 语句的输入输出参数,一般参数都是基本的数据类型或封装类型,但都需要声 ...

  7. 3.storm-starter打包在storm集群上运行

    1.使用maven或者其他打包工具将storm-starter打成jar包 2.请将jar包用解压工具打开在根目录下找到defaults.yaml文件并将其删除不然到时会报有multiply defa ...

  8. js图片上传并预览

    <form id="addpic" class="easyui-form" method="post" enctype="m ...

  9. Maven学习篇一:eclipse构建运行maven web项目

    1.new->other->maven project->next 2.选择创建简单项目(或者直接去掉勾,在后面选择maven-archetype-webapp) 3.设置坐标,名称 ...

  10. vue中子组件的拆分 父组件与子组件之间的传值

    vue是组件式开发,尽量独立出子组件 prop():父组件传值给子组件 $emit():子组件传值给父组件 子组件中的设置: 使用bind <template> : default-che ...