F CodeForces - 710A
训练1(共12题) - Virtual Judge
我的代码
#include
using namespace std;
int main()
{char arr[10][10],a;int b,c,k=0;cin>>a>>c; b=a-'a'+1;
// cout<
陈杨的
#include
int main(){char c;int d;int val=0;scanf("%c",&c);scanf("%d",&d);if(c=='a'||c=='h'){val+=1;}if(d==1||d==8){val+=1;}if(val==0){printf("8");}if(val==1){printf("5");}if(val==2){printf("3");}return 0;
}//不在棋盘边上点 输出都是8;
//边上的点 除了四个角都是8-3
//四个角的点8-3-2
//坐标(x,y)里含a、h、1、8都不是中间的点 ,含一个是边上的点,含两个是四角的点
G CodeForces - 1257A
#include
using namespace std;
#include
int main()
{int k,n,x,a,b,j=0;cin>>k;while(k--){cin>>n>>x>>a>>b;j=abs(a-b);if(x==0) cout<
陈杨的
#include
#include
int main(){int t;int n,x,a,b;int dist;scanf("%d",&t);while(t--){scanf("%d%d%d%d",&n,&x,&a,&b);dist=abs(a-b);dist+=x;if(dist>n-1){dist=n-1;}printf("%d\n",dist);}}
//每次交换操作 位置能加一或减一
//题干里的原话是“你能交换的次数”,可以理解为如果达到最远的距离就可以停止操作
//一个if判断就能得出答案了,也就是判断一下操作x次+1后是不是两个人到达队伍两端
H CodeForces - 988A
#include
#include
using namespace std;
int main()
{int n,k,a[9999]={0},b[9999],ai,j=0;cin>>n>>k; for(int i=0;i>ai;if(a[ai]==0) {a[ai]=1;b[j++]=i; }}if(j
陈杨的
#include
int b[101]={0};
int a[101];
int j=1;
int n=0;
int k=0;
int s=0;
int temp=0;
int main(){scanf("%d%d",&n,&k);for(int i=1;i<=n;i++){scanf("%d",&temp);if(b[temp]==0){b[temp]+=i;s++;}}if(s
CodeForces - 1539Bhttps://vjudge.net/contest/528020#problem/FCodeForces - 1539B
训练1(共12题) - Virtual Judge
I题
佩蒂娅曾经写过一首悲伤的情歌,并将它分享给瓦莎。这首歌是一串由小写英文字母组成的字符串。瓦莎就这首歌编了q个问题。每个问题都是关于歌曲中第 l 个字母到第 r 个字母的一个子段。Vasya按照这个子段的字符串的顺序从左到右歌唱,对于每个字母我们会对这个字母重复唱k次,其中k是字母表中对应这个字母的索引。
例如,如果问题是关于子字符串“abbcb”,那么Vasya歌唱字母“a”一次,对于每个字母“b”歌唱两次,字母“c”歌唱三次,这样结果唱出来的字符串就为“abbbbcccbb”,其长度为10。Vasya对结果字符串具体是什么不感兴趣,但是对于结果的字符串长度感兴趣。
所以请你帮助Petya,对于每次Vasya的询问,给出每次询问的子字符串的结果字符串的长度。
#include
#include
using namespace std;
char arr[99999],c;
int main()
{int n,q,l,r=0,b[99999],a[99999];cin>>n>>q;for(int i=1;i<=n;i++){cin>>c;a[i]=(c-'a'+1);// 对题目中这句话“对于每个字母我们会对这个字母重复唱k次,其中k是字母表中对应这个字母的索引。” }//k是每个字母对应26个英文字母表的索引,举例就是A=1 B=2 C=3 D=4 E=5 F=6 G=7 ,将每个字符串中每个字母对应的索引号存储到数组a中 //题目要求每次询问一个区间内的结果字符串的长度for(int i=1;i<=n;i++)//记录i是从1开始的,因为下面要用到他的前一项i==0//对应每一个数组b[n],存储着从a[1]、a[2]、a[3]、到a[n]内每一个数组的 {//使用前缀和公式 b[i]=b[i-1]+a[i];}for(int i=0;i>l>>r; cout<
J题 黑暗爆炸 - 1218
训练1(共12题) - Virtual Judge
https://darkbzoj.cc/problem/1218
#include
using namespace std;
typedef long long ll;
const int N=5005;//防止越界
int a[N][N]={0},s[N][N]={0};
int main(void)
{int n,r,ans,res,x,y,w;//scanf("%d%d",&n,&r);while(n--){//输入每个坐标和它的价值 scanf("%d%d%d",&x,&y,&w);x++;y++; a[x][y]+=w;}for(int i=1;imax) max=ans;} } if(res>32767)res=32767;printf("%d\n",res); return 0;
}
上一篇:BFS - 常见算法问题
下一篇:数据结构题目收录(十九)