您当前的位置: 首页 > 

对方正在debug

暂无认证

  • 7浏览

    0关注

    399博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

2019浙江省acm省赛

对方正在debug 发布时间:2019-04-30 10:48:21 ,浏览量:7

原题连接:https://cn.vjudge.net/contest/298281

B - Element Swapping

ZOJ - 4101 题意:数组a通过交换一对值得到数组b,且已知 x= ∑ i = 1 n i ∗ a [ i ] \sum_{i=1}^ni*a[i] ∑i=1n​i∗a[i]和y= ∑ i = 1 n i ∗ a [ i ] ∗ a [ i ] \sum_{i=1}^ni*a[i]*a[i] ∑i=1n​i∗a[i]∗a[i] 和交换后的数组b, 求原来被交换的可能对数。 题解:用数组b求出交换后的x1= ∑ i = 1 n i ∗ b [ i ] \sum_{i=1}^ni*b[i] ∑i=1n​i∗b[i]和y1= ∑ i = 1 n i ∗ b [ i ] ∗ b [ i ] \sum_{i=1}^ni*b[i]*b[i] ∑i=1n​i∗b[i]∗b[i] 那么 ( y − y 1 ) / ( x − x 1 ) (y-y1)/(x-x1) (y−y1)/(x−x1)就是对应被交换的两个数 ( v a l 1 + v a l 2 ) ∗ k (val1+val2)*k (val1+val2)∗k,其中k为他们两个数下标的距离差值,详见代码

#include
#include
#include
#include
#include
using namespace std;
#define ll long long
const int maxn=100010;

int n;
int a[maxn];

ll x,y,x2,y2;
int c[maxn];

int main()
{
	int t;
	scanf("%d",&t);
	while(t--){
		scanf("%d%lld%lld",&n,&x,&y);
		x2=y2=0LL;
		for(int i=0;i0&&yy            
关注
打赏
1664895754
查看更多评论
0.0683s