时间限制: 1 Sec 内存限制: 128 MB
提交 状态
题目描述
求 ax+b=0 的解。
输入
共有三组数据。
三行,每行两个整数,a,b。
输出
共有三组数据。
若有一个实数解,输出 x= 你求出的解,四舍五入保留 3 位小数,正负号要保留。
若无实数解,输出 No Solution。
若有无限组解,输出 Infinite Solutions。
样例输入 Copy
1 -1 4 -3 7 16
样例输出 Copy
x=1.000 x=0.750 x=-2.286
提示
对于 100% 的数据,∣a∣,∣b∣≤109。
printf自动四舍五入,据题意:四舍五入保留 3 位小数,正负号要保留。
所以是if(abs(ans)==0.000)
#pragma GCC optimize("Ofast") #pragma GCC optimize("Ofast","unroll-loops","omit-frame-pointer","inline") #include
typedef long long ll; typedef unsigned long long ull; using namespace std; const int N=1e9; int main() { int cnt=3; while(cnt--) { ll a,b; cin>>a>>b; if(a==0) { if(b==0) printf("Infinite Solutions\n"); else printf("No Solution\n"); continue; } if(b==0) { printf("x=0.000\n"); continue; } double ans=-b*1.0/a; //printf("%f\n",abs(ans)); if(abs(ans)==0.000) printf("x=0.000\n"); else printf("x=%.3f\n",ans); } return 0; } /************************************************************** Problem: 11161 User: 2019UPC110 Language: C++ Result: 正确 Time:1 ms Memory:2024 kb ****************************************************************/
时间限制: 1 Sec 内存限制: 128 MB
提交 状态
题目描述
C国的总统选举委员会最近遇到了一些麻烦。
他们在统计各省对H先生的支持率(百分比)时,把支持率四舍五入到了整数。等他们公布结果后,该国媒体发现这些省份的支持率之和不等于100(百分比)!在媒体黑幕声的质疑下,他们不得不找你寻求帮助。
你将得到各省四舍五入后的支持率,请计算这些省份的支持率在四舍五入前的和是否可能等于100?支持率是以百分比的形式统计的。
请注意,各省的支持率可以是一个包含任意多位的有限小数。一个小数在四舍五入到整数时,若小数点后第一位小于5则舍,大于等于5则入。
例如:
26、17、58是一种可能的支持率,因为它们可能是25.8、16.5、57.7四舍五入后得到的,而25.8+16.5+57.7=100。
49、49是一种不可能的支持率,因为当9的个数有限时,无论有多少个9,均有49.499…99+49.499…99<100。
输入
输入包含多组数据,第一行是一个整数T,表示数据组数。
接下来是T组数据,每组数据的第一行是一个整数N,表示参与选举的省份个数。第二行是N个整数,表示各省四舍五入后的支持率。
输出
对于每组数据,若是一种可能的支持率,输出Yes,否则输出No。
样例输入 Copy
2 2 49 49 3 26 17 58
样例输出 Copy
No Yes
提示
对于30%的数据,1<=n<=3;
对于50%的数据,1<=n<=5;
对于80%的数据,1<=四舍五入后各省的支持率<=99;
对于100%的数据,1<=n<=10000,输入数据中的所有整数均在有符号16位整数范围内。
提交状态
https://www.cnblogs.com/drizzly/p/7745084.html
#pragma GCC optimize("Ofast")
#pragma GCC optimize("Ofast","unroll-loops","omit-frame-pointer","inline")
#include
typedef long long ll;
typedef unsigned long long ull;
using namespace std;
const int N=1e9;
int main()
{
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
int m;
scanf("%d",&m);
double minsum=0,maxsum=0;
for(int j=1;j<=m;j++)
{
int x;
scanf("%d",&x);
minsum+=(x-0.5);
maxsum+=(x+0.499999999999999999999);
}
if(minsum<=100&&maxsum>=100) printf("Yes\n");
else printf("No\n");
}
return 0;
}
/**************************************************************
Problem: 15060
User: 2019UPC110
Language: C++
Result: 答案错误
****************************************************************/
时间限制: 1 Sec 内存限制: 128 MB
提交 状态
题目描述
有一个 n 个元素的数组 a ,设f(i,j)=ai xor aj。
现在你要求对于所有的 1≤i≤j≤n 的 f(i,j)之和。
输入
第一行,一个正整数 n 。
接下来 n 个数,表示 ai。
输出
仅一行,一个正整数,表示总和。
样例输入 Copy
3 1 2 3
样例输出 Copy
6
#pragma GCC optimize("Ofast")
#pragma GCC optimize("Ofast","unroll-loops","omit-frame-pointer","inline")
#include
typedef long long ll;
typedef unsigned long long ull;
using namespace std;
ll a[20];
int main()
{
ll n,x;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>x;
for(int j=0;j<20;j++)
{
if(x&(1<