拼三角
给出6根棍子,能否在选出3根拼成一个三角形的同时剩下的3根也能组成一个三角形?
输入描述:
首先在一行中给出一个 t,1≤t≤103t,1 \le t \le 10^3t,1≤t≤103,代表测试数据的组数
接下来t行,每行给出6个数字代表棍子长度,棍子长度为正且小于10910^9109
输出描述:
在一行中输出 “Yes” or “No”
两边之和大于第三边,轮流排序比较判断
#include<bits/stdc++.h>
using namespace std;
int a[11],t,k;
int main()
{
cin>>t;
while(t--)
{
k=0;
for(int i=1;i<=6;i++)
{
cin>>a[i];
}
sort(a+1,a+7);
do
{
if(a[1]+a[2]>a[3]&&a[1]+a[3]>a[2]&&a[2]+a[3]>a[1]&&a[4]+a[5]>a[6]&&a[4]+a[6]>a[5]&&a[5]+a[6]>a[4])
{
cout<<"Yes"<<endl;
k=1;
break;
}
}while(next_permutation(a+1,a+7));
if(!k)
cout<<"No"<<endl;
}
return 0;
}
相对分子质量
题目描述
给出单个原子的相对原子质量,计算化学式的相对分子质量。
输入描述:
第一行中给出两个正整数M,N,1≤M≤100,1≤N≤20M,N,1 \le M \le 100,1 \le N \le 20M,N,1≤M≤100,1≤N≤20
接下来M行每行给出一个以大写字母开头的字符串S和一个正整数X,S为元素名称,X为相对原子质量,1≤X≤5001 \le X \le 5001≤X≤500
最后N行每行给出一个化学式,保证化学式长度不超过50个字符
元素可能是一个大写字母,也可能是一个大写字母跟着一个小写字母,保证给出的M种化学元素互不相同
化学式包含括号以及括号嵌套,例如:Ba((OH)2(CO3)2)3
注:保证化学式使用给出的元素符号,但不保证该物质真实存在
E春游
题目描述
盼望着,盼望着,东风来了,春天脚步近了。
值此大好春光,老师组织了同学们出去划船,划船项目收费如下:
双人船最多坐两人,也可以坐一人,收费a{a}a元
三人船最多坐三人,也可以坐两人或者一人,收费b{b}b元
本次出游加上带队老师共n{n}n人,如何安排能使得花费最小呢?
输入描述:
第一行给出一个正整数 T(1≤T≤1000)T(1 \le T \le 1000)T(1≤T≤1000),代表测试数据的组数。
接下来 T{T}T 行每行给出三个正整数n,a,b,1≤n,a,b≤109n, a, b,1 \le n,a,b \le 10^9n,a,b,1≤n,a,b≤109,含义如题。
输出描述:
每组输入输出一行,代表最小的花费
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll t,n,a,b,q,w;
int main()
{
cin>>t;
while(t--)
{
cin>>n>>a>>b;
q=min((n+1)/2*a,(n-2)/2*a+b);
w=min((n+2)/3*b,min((n-2)/3*b+2*a,n/3*b+a));
cout<<min(q,w)<<endl;
}
return 0;
}
C消减整数
题目描述
给出一个正整数H,从1开始减,第一次必须减1,每次减的数字都必须和上一次相同或者是上一次的两倍,请问最少需要几次能把H恰好减到0。
输入描述:
第一行给出一个正整数T{T}T,1≤T≤1041 \le T \le 10^41≤T≤104
接下来T行每行一个H,1≤H≤109H,1 \le H \le 10^9H,1≤H≤109
输出描述:
每行一个正整数代表最少的次数
#include<bits/stdc++.h>
using namespace std;
int t,h,num,k;
int main()
{
cin>>t;
while(t--)
{
cin>>h;
num=0;
k=1;
if(h%2==0)
{
h-=2;
num+=2;
}
else
{
h-=1;
num++;
}
while(h)
{
if(h%(k*2)==0)
{
num++;
k*=2;
h-=k;
}
else
{
h-=k;
num++;
}
}
cout<<num<<endl;
}
return 0;
}