首页 > 其他分享 >第二次测试部分题解

第二次测试部分题解

时间:2024-07-27 19:51:27浏览次数:12  
标签:cout int 题解 s1 ans v2 测试 s2 第二次

A——暴力枚举计数就好了,可以参考这段代码

#include <bits/stdc++.h>
using namespace std;
#define ll  long long
#define mod 100003
#define MAN 1000100
char str[10];
int ans;
void ok(){
	ans = 0;
	int len = 0;
	for(int i = 0; str[i] != '\0'; i++)
		len++;
	if(len == 1){
		ans = 0;
		for(char i = 'a'; i <= 'z'; i++){
			ans++;
			if(i == str[0])
				return;
		}
	}
	if(len == 2){
		ans = 26;
		for(char i = 'a'; i <= 'z'; i++){
			for(char j = i + 1; j <= 'z'; j++){
				ans++;
				if(str[0] == i && str[1] == j)
					return;
			}
		}
	}
	if(len == 3){
		ans = 351;
		for(char i = 'a'; i <= 'z'; i++){
			for(char j = i + 1; j <= 'z'; j++){
				for(char k = j + 1; k <= 'z'; k++){
					ans++;
					if(str[0] == i && str[1] == j && str[2] == k)
						return;
				}
			}
		}
	}
	if(len == 4){
		ans = 2951;
		for(char i = 'a'; i <= 'z'; i++){
			for(char j = i + 1; j <= 'z'; j++){
				for(char k = j + 1; k <= 'z'; k++){
					for(char l = k + 1; l <= 'z'; l++){
						ans++;
						if(str[0] == i && str[1] == j && str[2] == k && str[3] == l)
							return;
					}
				}
			}
		}
	}
	if(len == 5){
		ans = 17901;
		for(char i = 'a'; i <= 'z'; i++){
			for(char j = i + 1; j <= 'z'; j++){
				for(char k = j + 1; k <= 'z'; k++){
					for(char l = k + 1; l <= 'z'; l++){
						for(char p = l + 1; p <= 'z'; p++){
							ans++;
							if(str[0] == i && str[1] == j && str[2] == k && str[3] == l && str[4] == p)
								return;
						}
					}
				}
			}
		}
	}
}
int main(){
	while(scanf("%s", str) != EOF){
		int x = 1;
		for(int i = 0; str[i + 1] != '\0'; i++){
			if(str[i + 1] <= str[i]){
				x = 0;
				printf("0\n");
			}
		}
		if(x){
			ok();
			cout<<ans<<endl;
		}
	}
	return 0;
}

E—— 统计子矩阵

#include <bits/stdc++.h>
using namespace std;

const int N = 510;
typedef long long LL;

int n, m, k;
int s[N][N];

int main() {
    cin >> n >> m >> k;
    for (int i = 1; i <= n; i ++)
        for (int j = 1; j <= m; j ++) {
            cin >> s[i][j];
            s[i][j] += s[i - 1][j]; // 每列上的一维前缀和
        }

    LL ans = 0;
    for (int i = 1; i <= n; i ++) // i j 上下边界
        for (int j = i; j <= n; j ++)
            for (int l = 1, r = 1, sum = 0; r <= m; r ++) { // l r 左右边界
                sum += s[j][r] - s[i - 1][r];
                while (sum > k) {
                    sum -= s[j][l] - s[i - 1][l];
                    l ++;
                }
                ans += r - l + 1;
            }

    cout << ans << endl;        
    
    return 0;
}

H—— Prefix Sum Addicts

#include <bits/stdc++.h>
 
using namespace std;
 
void solve()
{
	int n, k;
	cin >> n >> k;
	vector<long long> s(n + 1);
	for (int i = n - k + 1; i <= n; ++i)
		cin >> s[i];
	if (k == 1)
	{
		cout << "Yes" << endl;
		return;
	}
	vector<long long> a(n + 1);
	for (int i = n - k + 2; i <= n; ++i)
		a[i] = s[i] - s[i - 1];
	
	for(int i=n-k+3;i<=n;++i){
	    if (a[i-1]>a[i]){
    		cout << "No" << endl;
    		return;
	    }
	}
	
	if (s[n - k + 1] > a[n - k + 2] * (n - k + 1))
	{
		cout << "No" << endl;
		return;
	}
	cout << "Yes" << endl;
}
 
int main()
{
	int tests;
	cin >> tests;
	while (tests--) solve();
	return 0;
}

I——龟兔赛跑预测

#include <iostream>

using namespace std;

int v1, v2, t, s, l;

int main()
{
	scanf("%d %d %d %d %d", &v1, &v2, &s, &t, &l);
	int s1 = 0, s2 = 0,i=0;
	int t2 = l / v2;

	while(s1<l && s2<l)
	{
		if (s1 - s2 >= s)
		{
			s2 += (t * v2);
			i += t;
			if (i >= t2) break;
		}
		else
		{
			s1 += v1;
			s2 += v2;
			i++;
		}
	}
	if (s1 == s2 ) printf("D\n%d", t2);
	else if (s1 > s2 ) printf("R\n%d", i);
	else if (s1 < s2 ) printf("T\n%d", t2);

	return 0;
}

标签:cout,int,题解,s1,ans,v2,测试,s2,第二次
From: https://www.cnblogs.com/expect-999/p/18327388

相关文章

  • 从零手写实现 nginx-33-http_proxy 代理验证测试
    前言大家好,我是老马。很高兴遇到你。我们为java开发者实现了java版本的nginxhttps://github.com/houbb/nginx4j如果你想知道servlet如何处理的,可以参考我的另一个项目:手写从零实现简易版tomcatminicat手写nginx系列如果你对nginx原理感兴趣,可以阅读:从零......
  • 如何做安全测试
    软件测试中的安全测试是确保软件在面临各种安全威胁时能够保持稳定性和安全性的重要环节。以下是进行安全测试的主要步骤和方法:一、安全测试的主要步骤明确测试目标:确定测试的范围,包括哪些功能模块、接口和数据需要被测试。设定安全测试的具体目标,如检测SQL注入、跨站脚本(XS......
  • Java Kafka生产消费测试类
    JavaKafka生产消费测试类:生产者:packagetest.kafkatest;importjava.text.SimpleDateFormat;importjava.util.Properties;importjava.util.Random;importorg.apache.kafka.clients.producer.KafkaProducer;importorg.apache.kafka.clients.producer.ProducerConfig......
  • 2024暑假集训测试13
    前言比赛链接。从来没见过交互题,T1狂CE不止心态炸了,后面的题也没打好,T2、T3简单题都不会了,所以为啥T4又放黑题。T1大众点评原题:AT_joisc2014_d。难点主要在交互,赛时琢磨了半场比赛终于搞明白是啥玩意儿了,可以将给定库当成压缩的一部分代码,可以调用里面的函数,输入......
  • dpdk下ipsec内联卸载(inline offload)测试
    使用intel82599网卡完成。介绍本文介绍了数据平面开发套件(DPDK)框架中的内联IPsec加速支持实现,特别关注英特尔®8259910千兆以太网控制器系列的功能和支持。内联IPsec可用于实现IPsec感知系统,该系统具有比旁路辅助和加速硬件更好的延迟,前提是支持的算法合适。......
  • ABC260F 题解
    题面根据题目描述,原图为二分图,设两侧点集为\(S,T\),大小为\(s,t(s\le3\times10^5,t\le3\times10^3)\)。注意到有四元环当且仅当\(T\)中存在一个点对\((a,b)\)同时和\(S\)中的某两个点连边。可以先考虑暴力,一种想法是:考虑枚举\(S\)中的点\(c\),设和\(c\)连边的点......
  • ABC263F 题解
    题面注意到把对局在图上表示出来是一颗满二叉树(叶节点为选手,其他点为对局),可以考虑树形dp。设\(x\)为\([l_x,r_x]\)之间选手的比赛,且该节点到叶子结点距离\(d_x\)。设\(f(x,p)\)表示胜者为\(p\)的最大钱数,有转移:\[\begin{aligned}f(x,p)&=f(lson(x),p)+g(rson(x))+a......
  • ABC262F 题解
    题面把“移动\(a_n\)至数列头”称为rotate,删除一项称为erase。因为要求字典序最小,所以可以逐位贪心。考虑一个数\(a_i\)怎么变成第一个数:使用\(n-i\)次rotate/erase,再rotate一次。删除或移动原来的\(a_{i+1}\sima_n\),再移动原来的\(a_i\)(逐步移动到数列尾,再ro......
  • ABC261F 题解
    题面注意到如果两个球\(i,j\)有\(i<j,x_i>x_j\),那么这两个球一定会交换。所以要交换\(x\)的逆序对数次。但是相同颜色交换没有代价,所以答案是\(x\)的逆序对数减去满足\(c_i=c_j,i<j,x_i>x_j\)的\((i,j)\)对的数量。可以对每个\(j\)都求一遍满足\(c_i=j\)的\(......
  • ABC264F 题解
    题面注意到操作只对当前行/列有效,所以只要记录当前所在行和列是否有被操作。设\(f(i,j,x,y)\)表示到了位置\((i,j)\),第\(i\)行是否被操作,第\(j\)列是否被操作的最小代价。转移:设\(col=c(i,j)\oplusx\oplusy\)。\[\begin{aligned}f(i+1,j,x2,y)&\xleftarrow......