blue bridge cup

C++编程实例:算法与数据结构应用

冶炼

#include<iostream>
using namespace std;

long long n;
int a[10000],b[10000];

bool judge2(int x)
{
    for(int i=0;i<n;i++)
    {
        if(a[i] / x > b[i]) return false;
    }
    return true;
}

bool judge1(int x)
{
    for(int i=0;i<n;i++)
    {
        if(a[i] / x < b[i]) return false;
    }
    return true;
}

int main()
{
    cin>>n;
    for(int i=0;i<n;i++)
    {
        cin>>a[i]>>b[i]; 
    }
    int l=1,r=1e4;
    while(l<r)
    {
        int mid=l+r>>1;
        if(judge2(mid)) r=mid;
        else l=mid+1;
    }
    cout<<l<<" ";
    l=1, r=1e4;
    while(l<r)
    {
        int mid=l+r>>1;
        if(judge1(mid)) l=mid+1;
        else r=mid;
    }
    cout<<l-1;
}

买瓜

#include<iostream>
#include<algorithm>
using namespace std;

const int N=31;
int n,m;
double w[N];
double sum[N];
int res=1e9;

void dfs(int x,int cnt,double ww)
{
	if(ww==m)
	{
		res=min(res,cnt);
		return ;
	}
	if(cnt>=res) return ;//不如
	if(ww+sum[n]-sum[x]<m) return ;//缺
	if(x>=n) return ;//遍布完
	if(ww>m) return ;//超载
	dfs(x+1,cnt+1,ww+w[x]/2.0);//切
	dfs(x+1,cnt,ww+w[x]);//不切
	dfs(x+1,cnt,ww);//不考虑
	
}

bool comp(double x,double y)
{
	return x>y;
}

int main()
{
	scanf("%d%d",&n,&m);
	for(int i=0;i<n;i++)
	{
		cin>>w[i];
	}
	sort(w,w+n,comp);
	sum[0]=0;
	for(int i=0;i<n;i++)
	{
		if(i==0) sum[i+1]=w[i];
		else sum[i+1]=sum[i]+w[i];
	}
	dfs(0,0,0.0);
	if(res==1e9) cout<<"-1";
	else cout<<res;
}

子串简写

#include<iostream>
#include<string>
#include<vector>
#define int long long
using namespace std;

struct vv
{
	int n,m=0;
};

int n;
string s;
char a,b;
vector<vv> v;
int ant=0;
int k;
vv temp;

signed main()
{
	cin>>k;
	cin>>s>>a>>b;
	for(int i=0;i<(int)s.size();i++)
	{
		if(s[i]==a)
		{
			temp.n=i;
			temp.m++;
			v.push_back(temp);
		}
		if(s[i]==b)
		{
			if(i - k + 1 < 0 || !v.size())
				continue;
			int l=0,r=v.size()-1;
			while(l<r)
			{
				int mid=(l+r+1)>>1;
				if(v[mid].n<=(i-k+1)) l=mid;
				else r=mid-1;
			}
			if(v[l].n<=i-k+1) ant+=v[l].m;
		}
	}
	cout<<ant;
}

接龙数列——不断简化

#include<iostream>
#include<string>
#include<algorithm>
using namespace std;

int res=0;
int dp[10];
int main()
{
	int n;
	cin>>n;
	for(int i=0;i<n;i++)
	{
		string s;
		cin>>s;
		int a=s[0]-'0',b=s.back()-'0';
		dp[b]=max(dp[b],dp[a]+1);
		res=max(res,dp[b]);
	}
	cout<<n-res;
}

飞机降落

#include<iostream>
#include<algorithm>
using namespace std;
 
 
const int N=11;
int T,n;
struct plane
{
    int t,d,l;
}p[N];
bool st[N];
string answer[N];
 
 
bool dfs(int x,int time)
{
    if(x==n) return true;
    for(int i=0;i<n;i++)
    {
        if(!st[i])
        {
            st[i]=true;
            if(time>p[i].d+p[i].t)
            {
                st[i]=false;
                return false;
            }
            int t=max(time,p[i].t)+p[i].l;
            if(dfs(x+1,t)) return true;
            st[i] = false;
        }
    }
    return false;
}
 
 
int main()
{
    scanf("%d",&T);
    for(int i=0;i<T;i++)
    {
        scanf("%d",&n);
        for(int i=0;i<n;i++)
        {
            scanf("%d %d %d",&p[i].t,&p[i].d,&p[i].l);
        }
        if(dfs(0,0)) answer[i]="YES";
        else answer[i]="NO";
        for(int i = 0; i < n; i ++)
            st[i] = false;
    }
    for(int i=0;i<T;i++)
    {
        cout<<answer[i]<<endl;
    }
}

### 解决终端进程启动失败的问题 当遇到终端进程启动失败并提示指定的 Shell 可执行文件路径不存在时,通常是因为配置中的路径设置不正确或者环境变量未正确配置。对于 `F:\Competition\Blue Bridge Cup\codeC\vscodecpp\g++` 路径错误的情况,可以按照以下方法排查和解决问题。 #### 验证路径有效性 确保路径 `F:\Competition\Blue Bridge Cup\codeC\vscodecpp\g++` 存在并且指向有效的 G++ 编译器安装位置。如果该路径确实存在,则需确认其下有名为 `g++.exe` 的文件[^1]。 ```bash dir F:\Competition\Blue Bridge Cup\codeC\vscodecpp\ ``` #### 修改 VSCode 设置 VS Code 中可以通过修改 settings.json 文件来调整终端使用的 Shell 和编译命令: 1. 打开 VS Code 并进入 **Settings** 2. 使用搜索功能查找 `"terminal.integrated.shell.windows"` 或者直接编辑 JSON 版本的设置文件,在其中加入或修正如下字段: ```json { "terminal.integrated.profiles.windows": { "PowerShell": { "source": "PowerShell", "icon": "terminal-powershell" }, "Command Prompt": { "path": [ "${env:windir}\\Sysnative\\cmd.exe", "${env:windir}\\System32\\cmd.exe" ], "args": [], "icon": "terminal-cmd" } }, "terminal.integrated.defaultProfile.windows": "Command Prompt", "C_Cpp.updateChannel": "Insiders", "C_Cpp.clang_format_fallbackStyle": "GNU", "C_Cpp.default.cppStandard": "c++17", "C_Cpp.default.compilerPath": "F:\\Competition\\Blue Bridge Cup\\codeC\\vscodecpp\\g++.exe" } ``` 注意:上述代码片段中 `"C_Cpp.default.compilerPath"` 字段指定了 C/C++ 插件所用的默认编译器路径,请根据实际情况更改此路径以匹配本地安装的位置。 #### 添加到系统环境变量 为了使整个系统的命令行工具都能识别这个新的 GCC/G++ 安装版本,建议将其目录添加至 Windows 系统环境变量 PATH 中。这样可以在任何地方通过简单的 `g++` 命令调用它而无需每次都提供完整的绝对路径。 操作步骤如下: - 进入控制面板 -> 系统 -> 高级系统设置 -> 环境变量... - 在 “系统变量” 下找到 `PATH` ,点击编辑按钮追加新项;如果是首次添加则新建一个名称为 `PATH` 的用户变量。 - 将 `F:\Competition\Blue Bridge Cup\codeC\vscodecpp\` 加入列表最后面(记得保持各条目间分号隔开) 完成以上任一步骤之后重启 Visual Studio Code 应用程序以及所有打开的命令提示符窗口以便让改动生效。 #### 测试编译过程 尝试重新构建项目看问题是否得到解决。如果有其他依赖库或其他原因导致仍然无法正常工作的话可能还需要进一步调查具体报错信息来进行针对性处理。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值