月亮之眼

月亮之眼

#include<cstdio>//https://vijos.org/p/1540

#include<cstring>
#include<iostream>
using namespace std;
int n,m;
int h[10000];
int father[10000];
int found(int);
void show(void)
{
for(int i=1;i<=n;i++)
{
found(i);
}
int minl=0x7f7f7f;
int count=0;
for(int i=1;i<=n;i++)
{
if(h[i]<minl)
{
minl=h[i];
count=i;
}
}
if(minl<0)
{
for(int i=1;i<=n;i++)
{
h[i]-=minl;
printf("%d\n",h[i]);
}
}
else
for(int i=1;i<=n;i++)
{
printf("%d\n",h[i]);
}
}
int found(int x)
{
if(father[x]==x) return x;
else
{
int k=father[x];
father[x]=found(father[x]);
h[x]+=h[k];
return father[x];
}
}
void add(int x,int y,int z)
{
h[father[y]]=h[x]+z-h[y];
father[father[y]]=father[x];
}
void init()
{
int x,y,z;
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
{
father[i]=i;
h[i]=0;
}
for(int i=1;i<=m;i++)
{
scanf("%d%d%d",&x,&y,&z);
if(found(x)==found(y))
{
if(h[y]-h[x]!=z)
{
printf("-1");
return;
}
}
else
{
add(x,y,z);
}
}
show();
}
int main()
{
init();
return 0;
}

posted @ 2016-02-14 22:00 Minepressure 阅读( ...) 评论( ...) 编辑 收藏
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!要创建一个在Unity中实现月亮效果的Shader,您可以遵循以下步骤: 1. 创建一个新的着色器材质并将其分配给需要应用月亮效果的对象。 2. 在着色器中定义一个用于表示月亮位置的属性。例如,您可以使用一个名为"moonPosition"的属性来表示月亮的世界空间坐标。 3. 在顶点着色器中将该属性传递给片段着色器。 4. 在片段着色器中,计算从顶点到月亮位置的向量,并将其标准化。 5. 使用该向量和其他光照计算(例如漫反射和镜面反射)来模拟月亮照射场景的效果。您可以使用光照方程或其他技术来实现合适的着色效果。 6. 调整光照和材质属性以达到所需的效果。您可以尝试调整月亮的亮度、颜色和反射等因素来达到更逼真的效果。 这是一个简单的示例,用于将月亮的光照效果应用于场景中的对象。请注意,这只是一个基本的示例,并且您可以根据需要进行自定义和改进。 ```csharp Shader "Custom/MoonShader" { Properties { _MoonPosition ("Moon Position", Vector) = (0, 0, 0, 0) } SubShader { Tags { "RenderType"="Opaque" } Pass { CGPROGRAM #pragma vertex vert #pragma fragment frag // 月亮位置属性 uniform float4 _MoonPosition; // 顶点着色器 struct appdata { float4 vertex : POSITION; }; struct v2f { float4 vertex : SV_POSITION; float3 worldPos : TEXCOORD0; }; v2f vert (appdata v) { v2f o; o.vertex = UnityObjectToClipPos(v.vertex); o.worldPos = mul(unity_ObjectToWorld, v.vertex).xyz; return o; } // 片段着色器 fixed4 frag (v2f i) : SV_Target { // 计算从顶点到月亮位置的向量 float3 moonVector = normalize(_MoonPosition.xyz - i.worldPos); // 在这里进行光照计算和其他着色操作 // 返回最终的颜色值 return fixed4(1, 1, 1, 1); } ENDCG } } } ``` 请确保将_MoonPosition属性设置为适当的月亮位置,以便正确计算月亮照射效果。此示例只提供了一个基本的框架,您可以根据自己的需求进行更多的定制和改进。希望这对您有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值