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. Java线程池详解(一)

    一.线程池初探 所谓线程池,就是将多个线程放在一个池子里面(所谓池化技术),然后需要线程的时候不是创建一个线程,而是从线程池里面获取一个可用的线程,然后执行我们的任务.线程池的关键在于它为我们管理了多 ...

  2. 谈谈UI设计的6个实用小技巧

    从事UI设计的朋友们,肯定知道我们在做UI设计时,其实是可以通过一些小技巧来帮我们设计的界面更加的漂亮.实用.交互性强,用户体验更好.今天的话,上海艾艺在互联网上面搜寻了几个小技巧.在这里跟大家一起来 ...

  3. Oracle 更改归档文件到ASM磁盘

    01,配置磁盘路径

  4. vue中src下的assets文件与static文件的几点区别

    区别一: assets文件时src下的,所以最后运行时需要进行打包:而static文件不需要打包就直接放在最终的文件中了. 区别二: assets中的文件在.vue中的template/style下用 ...

  5. Column 'orders' in order clause is ambiguous

    今天报了这个错误 原因是.当使用sql查询语句,使用了join查表.但是这个orders没指定是哪张表的字段 ,发生在自关联情况

  6. TreeMap和TreeSet简单应用

    建一个实体类并实现Comparable接口重写compareTo方法 public class pojo implements Comparable<pojo> { private int ...

  7. 游戏AI的生命力源自哪里?为你揭开MOBA AI的秘密!

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由wataloo发表在专栏wataloo的试验田 1 设计概要 1.1 设计原则和目的 英雄AI的目的主要有: 1.新手过渡局,让玩家刚 ...

  8. Linux抓包工具:tcpdump

    tcpdump 是一个命令行实用工具,允许你抓取和分析经过系统的流量数据包.它通常被用作于网络故障分析工具以及安全工具. tcpdump 是一款强大的工具,支持多种选项和过滤规则,适用场景十分广泛.由 ...

  9. 很有用的PHP笔试题系列二

    1.如何用php的环境变量得到一个网页地址的内容?ip地址又要怎样得到? Gethostbyname() echo $_SERVER ["PHP_SELF"];echo $_SER ...

  10. 什么是图像 -- opencv基础

    opencv基础篇--到底什么是图像 什么是图像?英语中有两个单词来形容图像,一个是picture,一个是image.这两者虽然是形容同一个东西,但却又有着区别.picture代表实而有物的真实图像: ...